最近偶尔有个同事在tomcat連接池上提了一个疑问,引发我们部门地一番争论,但还是有分歧,不过通过一番查翻资料,疑点越来越集中,现在说说我的问题:
我们地统一点:
1.用户释放连接后,连接被回收到连接池,这个连接仍然是可用的。
如果一个连接等待了一段时间(连接池的最大空闲时间,可设置)仍然没有
人来请求连接,那么它将被彻底释放。当然,如果连接池中的连接个数已经
等于连接池的最小连接数(可设置),那么它不会被释放。
2.以tomcat连接池为例,tomcat启动后,假设我设置的最小连接数为5,那么这时候(此Tomcat下的程序没有启动)Tomcat是否和后台地数据库建立5条连线(session)呢?答案:不是.
3.我们的分歧点:注意第一点说的"用户释放连接后",什么叫用户释放连接,我把操作地页面关掉,还是在程序里调用conn.close,如果我 在程序里面手动地close,那么我关闭的是连接池里的连接吗,还是把连接还给连接池,也就是说,我手动close连接是否有必要呢?
附上代码一段
- package com.dalong.connectionpool;
- import java.util.HashMap;
- import java.util.Vector;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.*;
- /**
- * <p>Title: </p>
- * <p>Description: test</p>
- * <p>Copyright: Copyright (c); 2003</p>
- * <p>Company: home</p>
- * @author dalong
- * @version 1.0
- */
- public class ConnectionPool {
- //连接