【发布时间】:2019-06-12 19:44:31
【问题描述】:
我现在对在 jdbcTemplate.batchupdate 下使用 BatchPreparedStatementSetter 和 ParameterizedPreparedStatementSetter 使用春季批量更新感到困惑。
我浏览过各种博客,甚至是 spring 文档,但无法掌握其背后的概念。
在其中一篇博客 (Spring JDBC performing batch update example) 中,他们说:
ParameterizedPreparedStatementSetter:使用这个,JdbcTemplate 可以 根据传入的批处理大小执行多个批处理 批量更新方法。
BatchPreparedStatementSetter:使用这个,JdbcTemplate 将只运行 根据返回的批处理大小执行单个批处理 实现这个接口。
我想知道我是否想将数据插入 SQL Server DB。在幕后使用每个语句会有什么不同。他们会发送数据库调用吗
MULTIPLE INSERT CALLS BUT PREPARING STATEMENT ONCE
INSERT INTO TABLE VALUES(1,2,3)
INSERT INTO TABLE VALUES(2,3,5)
或
SINGLE INSERT WITH MULTIPLE VALUES AND PREPARING STATEMENT ONCE"
INSERT INTO TABLE VALUES(1,2,3),(2,3,5)
顺便说一句,我使用的是低于 sqljdbc 的版本
<dependency>
<groupId>microsoft</groupId>
<artifactId>sqljdbc</artifactId>
<version>4</version>
</dependency>
和 Spring 版本:4.2.3.RELEASE
【问题讨论】: