3

我们正在研究使用 JdbcTemplate 来访问数据库 - 但我们有许多不同的数据库连接,每个类都可以使用,因此注入 jdbcTemplate 不是一个选项 atm。所以如果我们做一个

jdbcTemplate = new JdbcTemplate(dataSource);

交易政策是什么?数据库中的自动提交已关闭。

4

1 回答 1

2

您可以将每个javax.sql.DataSource对象配置为启用自动提交(如果可以),或者禁用自动提交并以编程方式编写事务逻辑。

java.sql.Connection和类都有javax.sql.DataSource启用/禁用自动提交的方法。

关于依赖注入和 Spring,您仍然可以将数据源对象注入到您的存储库中。如果您还让每个存储库扩展org.springframework.jdbc.core.support.JdbcDaoSupport该类,那么您将拥有一个可用于派生getJdbcTemplate()方法的 JdbcTemplate 对象。

您也可以让 Spring 为您处理事务处理。如果没有 XA 事务管理器,则每个数据源都需要一个事务管理器。对于许多事务管理器,使用注释的声明性事务支持@Transactional是不可能的。但是,您可以将事务管理器注入您的服务类。这在此处的参考文档中进行了描述。

于 2010-06-10T09:21:33.303 回答