6

次の例では、JdbcTemplateは2つの接続または1つの接続を作成しますか?

public class MyDao {

     private JdbcTemplate jdbcTemplate;

     public List<Data1> getData1() {
          return jdbcTemplate.query(mySql, myParams, myCallback);
     }

     public List<Data2> getData2() {
          jdbcTemplate.query(mySql2, myParams2, myCallback2);
     }
}

public class Main {
    public static void main(String[] args) {
         MyDao dao = new MyDao();
         List<Data1> d1 = dao.getData1();
         List<Data2> d2 = dao.getData2();
         doStuff(d1, d2);
    }
}

つまり、最初のクエリからの接続を再利用しますか?基本的なデータソース(プールされたデータソースではない)で構築されたと想定しています。

4

1 に答える 1

9

これは、JdbcTempateのデータソースによって異なります。Apache commons-dbcpのような接続プールを提供した場合、DBCPは接続を再利用するために最善を尽くします。Spring JDBCのDriverManagerDataSourceを使用した場合、JdbcTemplate.queryの呼び出しごとに新しい接続が作成/閉じられます。

于 2013-02-28T05:26:04.647 に答える