JdbcTemplate可以同时批量更新到多个表

时间:2018-07-01 12:05:54

标签: spring-jdbc

JdbcTemplete.batchUpdate()可以采用准备好的语句,并且可以将多个插入触发到同一张表中。

String sql = "INSERT INTO MYTABLE (COL1, COL2) VALUES (?, ?)"
List params = ...
jdbcTemplate.batchUpdate(sql,  new BatchPreparedStatementSetter() {
    public void setValues(PreparedStatement ps, int i) throws SQLException {
        List<String> singleRowParams = params.get(i);
            ps.setString(1, singleRowParams.get(0));
            ps.setString(2, singleRowParams.get(1));
        }

        // This is the number of times to run the SQL statement. 
        public int getBatchSize() {
            return params.size();
        }
   }
);

如何在一次批量更新中将其插入到多个表中?

谢谢

1 个答案:

答案 0 :(得分:2)

不,这不可能。考虑一下如果您尝试手动运行此SQL,您将如何做呢?一种替代方法是遍历您的更新并为相关表每次修改SQL。