【发布时间】:2013-05-01 01:51:50
【问题描述】:
参考Tomcat JBDC connection pool,我在其中给出的独立Java 示例中看到,使用datasource.getConnection() 获得连接,这很酷。但在 finally 块中,它显示con.close()。
问题:当我实现这个时,很明显我从数据源获得的con 每次都会在finally 中关闭。当这个关闭时,连接池机制是否会获取一个新的连接并将其添加到池中?
我认为应该有一个像 releaseConnection() 这样的方法调用,让池自行决定是关闭它还是打开它以供其他用途。
我也试过这样做ConnectionPool aPool = datasource.createPool();
但我发现在这个aPool 上没有像发布连接那样的东西。
我想我在这里遗漏了什么? 感谢您的帮助。
来自Tomcat JBDC connection pool的代码sn-p:
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) {}
}
【问题讨论】:
标签: java jdbc tomcat7 connection-pooling