我们正在研究使用 JdbcTemplate 来访问数据库 - 但我们有许多不同的数据库连接,每个类都可以使用,因此注入 jdbcTemplate 不是一个选项 atm。所以如果我们做一个
jdbcTemplate = new JdbcTemplate(dataSource);
交易政策是什么?数据库中的自动提交已关闭。
我们正在研究使用 JdbcTemplate 来访问数据库 - 但我们有许多不同的数据库连接,每个类都可以使用,因此注入 jdbcTemplate 不是一个选项 atm。所以如果我们做一个
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
是不可能的。但是,您可以将事务管理器注入您的服务类。这在此处的参考文档中进行了描述。