数据库用的是mysql,部署在windows系统上。前提是不改变这两个条件。Stringsql="updatetableA=?,B=?,C=?whereD=?andE=?";字段D和E都建索引了。BatchPreparedStatementSetterbatch=new...
数据库用的是mysql,部署在windows系统上。前提是不改变这两个条件。
String sql= "update table A= ?, B= ?, C= ? where D= ? and E= ? ";
字段D和E都建索引了。
BatchPreparedStatementSetter batch = new BatchPreparedStatementSetter(){
@Override
public int getBatchSize() {
return rtData.size();
}
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
Object[] obj = rtData.get(i);
ps.setObject(1, obj[0].toString());
ps.setObject(2, obj[1].toString());
ps.setObject(3, obj[2].toString());
ps.setObject(4, obj[3].toString());
ps.setObject(5, obj[4].toString());
}
};
int[] updateCounts = PConfigManageService.getJdbcTemplate().batchUpdate(sql,batch);
更新500条数据,需要20秒。太慢了。哪位大神可怜可怜我。尽量控制在5秒之内。
展开