java - JdbcTemplate.update 输入从一个表到另一个表

标签 java batch-processing jdbctemplate

我有一个表“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/

相关文章:

java - HTTP Apache,ssl 身份验证在 Java 1.8 中不起作用

java - Java Swing 中的键盘 "Held"事件?

java - 如何在 JTreeTable 中获得正确的选择?

java - 数字提升仅适用于算术运算符?

android - 批量选择位图/ImageViews android

postgresql - Kotlin 中的 JdbcTemplate IN 子句

mysql - JdbcTemplate 'IN' 搜索无法正常工作

java - hibernate 搜索 : prevent from high memory usage during batch insert

MATLAB:批量导入一个非常大的文件

java - Spring JDBC - 批量删除和插入