原始的jdbc批量插入数据的方法
@Service("importDao")
@Transactional //使用jdbc进行批量操作
public class ImportExcelToOracleDaoImpl extends JdbcDaoSupport implements ImportExcelToOracleDao{
public void insertComplaintBatch(final List<ComplaintWorker> complaintWorkers) { //参数传一个实体类的集合
String sql = "insert into TB_CMCC_COMPLAINT_WORKERS"
+ "(FILE_ID,ACCPT_PHONE,COMPLAINT_CONTENE,LOCATION,ACCPT_CHANNEL,ACCPT_TIME,CREATE_TIME,PROBLEM_TYPE,REPEAT_NUM,SPARE1,SPARE2,SPARE3,WHOLE_NETWORK_ID) "
+ "values (? , ? , ? , ? , ? , ? , sysdate , ? , ? , ? , ? , ? , ?) ";
this.getJdbcTemplate().batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException { i就是batchSize()集合的长度
ComplaintWorker cw = complaintWorkers.get(i);
ps.setString(1, cw.getFileId());
ps.setString(2, cw.getAccptPhone());
ps.setString(3, cw.getComplaintContent());
ps.setString(4, cw.getLocation());
ps.setString(5, cw.getAccptChannel());
if (cw.getAccptTime() == null || "".equals(cw.getAccptTime())) {
ps.setString(6, cw.getAccptTime());
} else {
ps.setTimestamp(6, Timestamp.valueOf(cw.getAccptTime()));
}
ps.setString(7, cw.getProblemType());
ps.setInt(8, cw.getRepeatNumber());
ps.setInt(9, cw.getSpare1());
ps.setString(10, cw.getSpare2());
ps.setString(11, cw.getSpare3());
ps.setString(12, cw.getWholeNetworkId());
}
public int getBatchSize() {
return complaintWorkers.size();
}
});
}