开源连接池技术(C3P0)
C3P0连接池:最常用的连接池技术!Spring框架,默认支持C3P0连接池技术!
C3P0连接池核心类:CombopooledDataSource
使用:
- 下载引入jar文件:c3p0-0.9.1.2.jar
- 创建核心类
- 引入配置(代码中直接配置/加载配置文件)
代码中直接配置
/**
* 硬编码方式,使用c3p0连接池管理
* @throws Exception
*/
@Test
public void testCode() throws Exception{
// 创建连接池核心工具类
ComboPooledDataSource dataSource = new ComboPooledDataSource();
// 设置参数:url,username,password,初始连接数、最大连接数
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setUser("root");
dataSource.setPassword("root");
dataSource.setInitialPoolSize(3);
dataSource.setMaxPoolSize(6);
dataSource.setMaxIdleTime(1000);
// 从连接池中获取连接
Connection con = dataSource.getConnection();
// 执行更新
con.prepareStatement("delete from stu where id=2").executeUpdate();
// 关闭
con.close();
}
引入配置文件
/**
* XML配置方式
* 创建c3p0核心工具类
* 自动加载src下的配置文件(在c3p0的源码中寻找c3p0-config.xml)
* @throws Exception
*
*/
@Test
public void testXML() throws Exception{
// 创建c3p0连接池核心工具类
// 自动加载src下c3p0的配置文件
ComboPooledDataSource dataSource = new ComboPooledDataSource();
// 获取连接
Connection con = dataSource.getConnection();
// 执行更新
con.prepareStatement("insert into stu(id,name) values(2,'Tom')").executeUpdate();
// 关闭连接
con.close();
}
配置文件c3p0-config.xml
<c3p0-config>
<default-config>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">3</property>
<property name="maxIdleTime">1000</property>
<property name="maxPoolSize">6</property>
</default-config>
</c3p0-config>
连接池一般希望在程序中只加载一次,可以使用静态代码块