參考Tomcat JBDC connection pool,我看到在那裏給出的獨立java示例中,有一個使用datasource.getConnection()
這個很酷的連接。但在最後一塊,它說con.close()
。Tomcat JDBC連接池(釋放連接)
問題:當我實現這個時,似乎很明顯,我從數據源獲得的con
將在每次最後關閉。當它關閉時,連接池機制會獲得一個新連接並將其添加到池中?
我認爲應該有一個像releaseConnection()
這樣的方法調用,它可以讓游泳池自己決定是關閉它還是讓它爲其他用途打開。
我也試過這樣做ConnectionPool aPool = datasource.createPool();
但我看到有沒有像這個aPool
發佈連接。
我想我在這裏失去了一些東西? 感謝您的幫助。從Tomcat JBDC connection pool
代碼片段:
DataSource datasource = new DataSource();
datasource.setPoolProperties(p);
Connection con = null;
try {
con = datasource.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from user");
int cnt = 1;
while (rs.next()) {
System.out.println((cnt++)+". Host:" +rs.getString("Host")+
" User:"+rs.getString("User")+" Password:"+rs.getString("Password"));
}
rs.close();
st.close();
} finally {
if (con!=null) try {con.close();}catch (Exception ignore) {}
}
保持DataSource的「MaxIdle」設置足夠高,以使這些連接不被關閉。將它設置爲0會關閉任何關閉的連接,我想。 – Hartmut 2014-09-07 20:36:25