web-dev-qa-db-ja.com

SpringのJdbcTemplateはクエリのタイムアウト後に接続を閉じますか?

Insertステートメントでメソッドにクエリタイムアウト(getJdbcTemplate()。setQueryTimeout(5))を設定しました。クエリのタイムアウト後はどうなりますか?jdbcテンプレートは接続を閉じますか?

15
user3073662

つまり、はい、接続を閉じます。それは長い答えです。

Springマネージドトランザクションがない場合、はい、JdbcTemplateConnectionclose()メソッドを呼び出します。ただし、Springsトランザクション管理が原因ですでに使用可能な接続があった場合、その接続はSpringsトランザクションサポートによって処理され、Connectionに対してclose()も呼び出されます。

唯一の違いは、接続が閉じられたときにclose()が呼び出される場合です。

接続が実際に閉じられるかどうかは、使用されるDataSourceに依存します。通常、接続プールを使用すると、実際に接続を閉じるのではなく、プールに接続が返されます。

16
M. Deinum

はい、そうです。

また、接続が接続プールから取得された場合、実際には接続を閉じず、プールに送り返します。

3
Abhishek Anand

接続を手動で閉じる必要はありません。操作を引き受けるSpringコンテナ自体。この春のURLを参考にしてください、

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html

JdbcTempleteの使用中に接続を閉じることもできます。場合によっては、クエリの実行後に接続を閉じる必要があります。そうしないと、接続の問題が発生します。詳細については、[jdbcテンプレートの接続を閉じる] [1] [1]にアクセスしてください。 http://www.javaiq.in/2019/05/jdbctemplate.html

<pre>

jdbcTemplate.getDataSource()。getConnection()。close();

0