我有一个表“temp”和“data”。我想将一些特定数据从“临时”表复制到“数据”表以及批量的一些用户数据。 目前我有一个类似的代码
JdbcTemplate.update("insert into Data(a, b, c, d, e) "
+ "select a, b, c, ?, e"
+ "from Temp where d= ?", id, Date);
但是我希望在数据 >10,00,000 行时分批完成此操作,这会用此单个事务填充我的事务日志,因此需要将此单个事务分解为多个事务。
最佳答案
尝试创建要插入的所有参数的列表
,并使用以下方法进行批量更新。
public void insertBatch(final List<TempObj> TempList) {
String str = "Your query here.";
getJdbcTemplate().batchUpdate(str, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i)
throws SQLException {
TempObj obj = TempList.get(i);
ps.setString(1, obj.getId());
ps.setDate(2, obj.getDate());
}
@Override
public int getBatchSize() {
return TempList.size();
}
});
}
关于java - JdbcTemplate.update 输入从一个表到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36003870/