我们正在研究使用JdbcTemplate访问数据库 - 但我们有许多不同的DB连接,每个类都可以使用,因此注入jdbcTemplate不是选项atm。所以如果我们做一个使用JdcbTemplate独立版
jdbcTemplate = new JdbcTemplate(dataSource);
交易政策是什么?数据库中的自动提交已关闭。
我们正在研究使用JdbcTemplate访问数据库 - 但我们有许多不同的DB连接,每个类都可以使用,因此注入jdbcTemplate不是选项atm。所以如果我们做一个使用JdcbTemplate独立版
jdbcTemplate = new JdbcTemplate(dataSource);
交易政策是什么?数据库中的自动提交已关闭。
您可以配置每个javax.sql.DataSource
对象以启用自动提交(如果执行该作业),或者禁用自动提交并以编程方式写入事务逻辑。
java.sql.Connection
和javax.sql.DataSource
类都有用于启用/禁用自动提交的方法。
关于依赖注入和Spring,仍然可以将数据源对象注入到存储库中。如果您还让每个存储库扩展org.springframework.jdbc.core.support.JdbcDaoSupport
类,那么您可以使用派生的getJdbcTemplate()
方法为您提供JdbcTemplate对象。
你也可以让Spring为你处理事务处理。没有XA事务管理器,每个数据源都需要一个事务管理器。对于许多事务管理器,使用@Transactional
注释进行声明式事务处理是不可能的。但是,您可以将事务管理器注入您的服务类。这在参考文档here中进行了描述。
所以我猜,如果没有其他指定,JdbcTemplate会在每次更新后简单地提交? – Flyhard 2010-06-10 14:41:55
这是我使用的每个'DataSource'的默认行为。所以它应该,但是如果'JdbcTemplate.update(..)'没有提交,请检查你的'DataSource'配置。 – Espen 2010-06-10 21:03:58
javax.sql.DataSource没有提及自动提交。 – 2012-07-19 18:47:26