簡體   English   中英

每次調用query()時JdbcTemplate都會創建一個新連接嗎?

[英]Does JdbcTemplate create a new connection every time you call query()?

在下面的示例中,JdbcTemplate是創建兩個連接還是一個?

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);
    }
}

也就是說,它是否重用第一個查詢中的連接? 我們假設它是使用基本數據源(不是池數據源)構建的。

它取決於JdbcTempate的DataSource。 如果您提供了連接池,例如Apache commons-dbcp,那么DBCP將盡力重用Connections。 如果您使用Spring JDBC的DriverManagerDataSource,則將在每個JdbcTemplate.query調用上創建/關閉新的Connection。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM