public void insert(List<Student> students) {
String sql ="INSERT INTO sqlDB.Student VALUES(?,?,?)";
ArrayList<Object[]> sqlargs=new ArrayList<Object[]>();
for(Student tempstudent: students) {
Object[] studentData={tempstudent.getRollNo(),tempstudent.getName(),tempstudent.getAddress()};
sqlargs.add(studentData);
}
jdbcTemplate.batchUpdate(sql, sqlargs);
System.out.println("Batch Update Completed-->");
}
错误:
log4j:警告找不到记录器(org.springframework.context.support.ClassPathXmlApplicationContext)的附加程序。 log4j:WARN 请正确初始化 log4j 系统。 ApplicationContext 已加载 线程“main”java.lang.Error中出现异常:未解决的编译问题: JdbcTemplate 类型中的方法 batchUpdate(String, BatchPreparedStatementSetter) 不适用于参数 (String, ArrayList
at com.jdbc.dao.StudentDAOimpl.insert(StudentDAOimpl.java:76)
at com.jdbc.service.StudentDAOHelper.setUpStudentTable(StudentDAOHelper.java:35)
at com.jdbc.test.Runner.main(Runner.java:21)
我试图使用 jdbcTemplate.batchUpdate() 将一批学生数据插入数据库,这是我的方法和我收到的错误。目前我只了解了Spring和jdbc,有没有其他方法可以使用batchupdate接口。
您可以通过以下解决方案:
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
public class <YourClassName> {
private JdbcTemplate jdbcTemplate;
public void insert(List<Student> students) {
String sql = "INSERT INTO sqlDB.Student VALUES(?,?,?)";
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
Student student = students.get(i);
ps.setInt(1, student.getRollNo());
ps.setString(2, student.getName());
ps.setString(3, student.getAddress());
}
@Override
public int getBatchSize() {
return students.size();
}
});
System.out.println("Batch Update Completed-->");
}
}