2017-05-30 21 views
0

私は、春のブートJDBCテンプレートがどのように動作するか疑問に思っています。私はドキュメントを読んだが、はっきりと理解できなかった:(テンプレートがいつ接続を開くのか、いつ閉じられるのか、トランザクションはどのように処理されるのか)。春のブートJdbctemplate

+1

簡単な答えはありません...基本的には、トランザクション管理が設定されているかどうかによって異なります。そうでない場合は、トランザクションの開始時に1つの接続が開かれていて、トランザクションが終了した後に接続が閉じられている場合は、各アクションに対して接続が開かれ(閉じられ)ます。 –

答えて

1

public JdbcTemplate(DataSource dataSource) 

または::テンプレートが接続を開くない場合、それはJdbcTemplateを構築するための

を閉じますない場合、あなたはからの接続を取得するJDBCデータソースを指定する必要があります

public JdbcTemplate() 
JdbcAccessor.setDataSource(javax.sql.DataSource) 

結局、JdbcTemplateはこのDataSourceと連動します。

DataSourceは、実装に応じて、プールされていない新しい標準Connectionオブジェクト、またはリサイクル可能な接続プーリングに参加するオブジェクトを返すことがあります。

JdbcTemplateには接続がプールされ、DataSourceに戻されます。トランザクションが処理されない方法

JdbcTemplate

は、データベース・トランザクションに依存しています。 サービスレイヤ/ビジネスロジックでトランザクションを操作する場合は、トランザクション管理が必要です。 最も簡単な方法は、@Transactionalのサービスに注釈を付けるか、org.springframework.transaction.support.TransactionTemplateを使用することです。