c3p0数据库连接池
方式一
public class DateSource {
//方式一
@Test
public void C3p0Test() throws PropertyVetoException, SQLException {
//获c3p0数据库连接池
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "com.mysql.jdbc.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:mysql://localhost:3306/test" );
cpds.setUser("root");
cpds.setPassword("root");
//通过设置先关掉的参数,对数据库连接池管理
//设置初始数据库连接池中的链接数
cpds.setInitialPoolSize(10);
Connection conn=cpds.getConnection();
System.out.println(conn);
//销毁数据库连接池
DataSources.destroy( cpds );
}
//方式二:使用配置文件
@Test
public void test2() throws SQLException {
ComboPooledDataSource cpds = new ComboPooledDataSource("hello");
Connection connection = cpds.getConnection();
System.out.println(connection);
cpds.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
正常的操作下,我们只需要一个数据库连接池,因此需要对获取链接的方法进行改动
private static ComboPooledDataSource cpds = new ComboPooledDataSource("hello");
public void getCOnnection() throws SQLException {
Connection connection = cpds.getConnection();
return connection;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
方式二需要在src目录下创建c3p0-config.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="automaticTestTable">con_test</property>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod">30</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
<user-overrides user="test-user">
<property name="maxPoolSize">10</property>
<property name="minPoolSize">1</property>
<property name="maxStatements">0</property>
</user-overrides>
</default-config>
<named-config name="hello">
<!-- 获取四个基本的配置信息 -->
<property name="user">root</property>
<property name="password">root</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<!-- 数据库连接池管理信息的设置 ,还可以添加其他管理信息-->
<!-- 若数据库连接池中的链接不够时,一次向数据库服务器申请多少个链接 -->
<property name="acquireIncrement">5</property>
<!-- 初始化数据库的数据库连接数 -->
<property name="initialPoolSize">10</property>
<!-- 数据库连接池中最小的数据库连接数 -->
<property name="minPoolSize">10</property>
<!-- 数据库连接池中最大的数据库连接数 -->
<property name="maxPoolSize">50</property>
<!-- 数据库链接池中可以维护的最大statement的个数 -->
<property name="maxStatements">100</property>
<!-- 每一个链接可以使用的最多的Statement的个数 -->
<property name="maxStatementsPerConnection">2</property>
</named-config>
</c3p0-config>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
推荐阅读