//管理配置信息(便于项目和配置文件的解耦)
public class Configuration{
//驱动类
private String driver;
//数据库的连接url
private String url;
//数据库的用户名
private String user;
//数据库的密码
private String pwd;
//正在使用哪个数据库
private String userDB;
//项目的源码路径
private String srcPath;
//扫描生成Java类的包
private String poPackage;
//项目使用的查询类是哪一个类
private String queryClass;
//连接池中最小的连接数
private int poolMinSize;
//连接池中最大的连接数
private int poolMaxSize;
.......get、set方法
.......带参、不带参的构造函数
}
//连接池的类
public class DBConnPool{
//连接池对象
private List<Connection> pool;
//最大连接数
private static final int POOL_MAX_SIZE = DBManager.getConf().getPoolMaxSize();
//最小连接数
private static final int POOL_MIN_SIZE = DBManager.getConf().getPoolMinSize();
public DBConnPool(){
initPool();
}
//初始化连接池,使池中的连接数达到最小值
public void InitPool(){
if(pool == null){
pool = new ArrayList<Connection>();
}
while(pool.size()<DBConnPool.POOL_MAX_SIZE){
pool.add(DBManager.createConn());
}
}
//从连接池中取出一个连接
public synchronized Connection getConnection(){
int last_index = pool.size()-1;
Connection conn = pool.get(last_index);
pool.remove(last_index);
return conn;
}
//将连接放回池中
public synchronized void close(Connection conn){
if(pool.size()>=DBConnPool.POOL_MAX_SIZE){
if(conn!=null){
conn.close();
}
}else{
pool.add(conn);
}
}
}