【发布时间】:2014-07-30 09:36:40
【问题描述】:
我正在处理的项目使用以下依赖项
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
有了这个,我正在执行以下 方法调用 (1)
template.batchUpdate(INSERT_SQL, instance of BatchPreparedStatementSetter);
看Spring JDBCTemplate中的源码好像是(因为驱动支持 批量更新)调用 PreparedStatement 上的 executeBatch()。但是,我没有看到数据库中更新的影响。
这是一个真正的错误还是我在这里遗漏了明显的错误?如果这个问题已经解决,请告知一个好的版本。 请注意,我需要一个不依赖于其他 Spring 模块(例如 Spring Core 或 MVC)的版本。提前致谢。
【问题讨论】:
-
这并不完全正确 - 它确实投票删除了此内容。
-
我已经更新了我原来的问题 - 它确实清理了参数并将连接释放回执行()方法中的池。但是,我没有看到任何提交。是否要求我的数据源必须促进自动提交设置为 true 的连接?
-
您确定打开一个非只读事务吗?我在更新没有影响时遇到的最后一个问题是由于“在视图模式中打开会话”提供的只读事务,并且没有明确的读写事务。
-
我想您指的是在连接级别将 autocommit 设置为 true - 不,我反对它(不是严格意义上的,但在大多数情况下)。
-
不,我不是指自动提交,而是指显式事务管理(
@Transactional注释,PlatformTransactionManager)
标签: java spring commit spring-jdbc batch-updates