参考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