1.JDBC数据库连接池的必要性
在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:
在主程序(如servlet、beans)中建立数据库连接。
进行sql操作
断开数据库连接。
2.c3p0数据库连接池
据说c3p0数据库连接池是最优秀的,下面我就来介绍如何使用c3p0连接池。
(1)下载jar包
(2)配置.xml文件以及c3p0.properties文件把它放在放在了src目录下
c3p0.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
c3p0.jdbcUrl=jdbc:sqlserver://localhost:1433;databasename=Movie
c3p0.user=sa
c3p0.password=sa
c3p0.minPoolSize=10
c3p0.maxPoolSize=100
c3p0.initialPoolSize=10
c3p0.maxIdleTime=60
(3)在BaseDAO配置
//定义Connection对象
protected Connection conn;
//定义PreparedStatement对象
protected PreparedStatement pstmt;
//定义ResultSet对象
protected ResultSet rs;
//连接数据库
protected void getConnection(){
try {
//获取连接池对象
DataSourcedataSource=DataSourceUtil.getDataSource();
//获取连接
this.conn=dataSource.getConnection();
} catch (Exception e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
3.数据库连接池技术的优点
(1)资源重用:由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性。
(2)更快的系统反应速度:数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接避免了数据库连接初始化和释放过程的时间开销,从而减少了系统的响应时间。
(3)新的资源分配手段对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接池的配置实现某一应用最大可用数据库连接数的限制避免某一应用独占所有的数据库资源。
(4)统一的连接管理,避免数据库连接泄露在较为完善的数据库连接池实现中,可根据预先的占用超时设定,强制回收被占用连接,从而避免了常规数据库连接操作中可能出现的资源泄露。