Java JdbcTemplate.update从一个表到另一个表的输入

Java JdbcTemplate.update从一个表到另一个表的输入,java,batch-processing,jdbctemplate,Java,Batch Processing,Jdbctemplate,我有一个表“temp”和“data”。我想将一些特定的数据从“temp”表复制到“data”表,同时批量复制一些用户数据。 目前我有一个类似的代码 JdbcTemplate.update("insert into Data(a, b, c, d, e) " + "select a, b, c, ?, e" + "from Temp where d= ?", id, Date); 但是我想分批完成这项工作,因为数据>10,00000

我有一个表“temp”和“data”。我想将一些特定的数据从“temp”表复制到“data”表,同时批量复制一些用户数据。 目前我有一个类似的代码

JdbcTemplate.update("insert into Data(a, b, c, d, e) "
                + "select a, b, c, ?, e"
                + "from Temp where d= ?", id, Date);

但是我想分批完成这项工作,因为数据>10,00000行,这会用这个单一事务填充我的事务日志,因此需要将这个单一事务分解为多个。

尝试创建一个包含所有要插入的参数的
列表,并使用以下方法进行批量更新

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();
        }

    });

}
public void insertBatch(最终列表模板){
String str=“您的查询在此。”;
getJdbcTemplate().batchUpdate(str,新的BatchPreparedStatementSetter()){
@凌驾
公共无效设置值(准备的声明ps,int i)
抛出SQLException{
TempObj=templast.get(i);
ps.setString(1,obj.getId());
ps.setDate(2,obj.getDate());
}
@凌驾
public int getBatchSize(){
返回templast.size();
}
});
}

尝试创建一个包含所有要插入的参数的
列表,并使用以下方法进行批量更新

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();
        }

    });

}
public void insertBatch(最终列表模板){
String str=“您的查询在此。”;
getJdbcTemplate().batchUpdate(str,新的BatchPreparedStatementSetter()){
@凌驾
公共无效设置值(准备的声明ps,int i)
抛出SQLException{
TempObj=templast.get(i);
ps.setString(1,obj.getId());
ps.setDate(2,obj.getDate());
}
@凌驾
public int getBatchSize(){
返回templast.size();
}
});
}