关闭池中的 JDBC 连接
问题:使用连接池时是否应该关闭 JDBC 连接?如果是这样,那不是违背了池化的目的吗?
答案:是的,应该关闭池化连接。关闭池连接会将底层连接释放回池中。
连接池会跟踪哪些连接正在使用以及哪些连接空闲。当连接关闭时,池将其识别为可供重用。
问题:以下方法是否适合从池或 DriverManager 获取连接?
public Connection getConnection(boolean pooledConnection) throws SQLException { if (pooledConnection) { if (ds == null) { try { ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/NamedInTomcat"); return ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); } } return (ds == null) ? getConnection(false) : ds.getConnection(); } return DriverManager.getConnection("jdbc:mysql://..." + dbName, uName, pWord); }
答案:不推荐使用该代码。 DataSource 应在应用程序启动期间初始化一次,而不是在方法中初始化。此外,同步和空检查是不必要的。该方法应该简单地查找 DataSource 一次并一致地返回连接。
其他注意事项:
以上是我应该关闭池化 JDBC 连接吗?的详细内容。更多信息请关注PHP中文网其他相关文章!