3

DBにアクセスするためにJdbcTemplateを使用することを検討していますが、各クラスが使用できるさまざまなDB接続があるため、jdbcTemplateを注入することはオプションではありません。したがって、

jdbcTemplate = new JdbcTemplate(dataSource);

取引ポリシーはどうなりますか?DB で自動コミットがオフになっています。

4

1 に答える 1

2

javax.sql.DataSourceオブジェクトを構成して、それが機能する場合は自動コミットを有効にするか、自動コミットを無効にしてトランザクションロジックをプログラムで記述できます。

java.sql.Connectionとクラスの両方に、javax.sql.DataSource自動コミットを有効/無効にするメソッドがあります。

依存性注入と Spring に関しては、引き続きデータソース オブジェクトをリポジトリに注入できます。また、各リポジトリにクラスを拡張させる場合は、派生メソッドorg.springframework.jdbc.core.support.JdbcDaoSupportを使用して JdbcTemplate オブジェクトを使用できます。getJdbcTemplate()

Spring にトランザクション処理を任せることもできます。XA トランザクション マネージャーがない場合は、データソースごとに 1 つのトランザクション マネージャーが必要です。多くのトランザクション マネージャーでは、@Transactionalアノテーションを使用した宣言型トランザクションのサポートは不可能です。ただし、トランザクション マネージャーをサービス クラスに挿入することはできます。これについては、こちらのリファレンス ドキュメントで説明されています。

于 2010-06-10T09:21:33.303 に答える