62,614
社区成员
发帖
与我相关
我的任务
分享
public class DbPool {
//初始化数据源ds和log记录对象
private static DataSource ds = null;
private static Logger log=Logger.getLogger(DbPool.class);
public static DataSource getDataSourcePool(){
if(ds!=null)
return ds;
/*
* 实例化配置文件类,实例化配置文件的路径
* */
Properties pro =new Properties();
InputStream ins=DbPool.class.getResourceAsStream("/db.properties");
try {
/*
* 根据配置文件打开指定驱动
* */
pro.load(ins);
String driver=pro.getProperty("driver");
Class.forName(driver);
/*
* 通过配置文件,获取url,用户名,密码
* */
String url=pro.getProperty("url");
String user=pro.getProperty("user");
String pwd=pro.getProperty("pwd");
/*
* 实例化连接池
* */
ObjectPool connectionPool = new GenericObjectPool(null);
/*
* 实例化连接工厂
* */
ConnectionFactory connectionFactory= new DriverManagerConnectionFactory(url,user,pwd);
/*
* 实例化连接池工厂,连接池工厂作用是自动产生连接,属于托管
* */
new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
/*
* 将产生的连接池交给数据源
* */
ds=new PoolingDataSource(connectionPool);
} catch (IOException e) {
// 异常,找不到配置文件
log.fatal("找不到配置文件",e);
} catch (ClassNotFoundException e) {
// 异常,找不到class文件
log.fatal("找不到class文件",e);
}
return ds;
}
}
连接池工厂