我们要想使用c3p0连接池只需要做两步
1)到如jar包
2)在hibernate.cfg.xml配置文件中进行配置
那么我们要导入的jar包在哪呢?路径如下图:
将该文件夹下的所有jar包导入即可。
第二步配置c3p0连接池
我们可以在
该文件夹下面找到hibernate.properties文件,在搜索c3p0即可找到关于c3p0的所有配置选项
1)hibernate.c3p0.max_size 配置数据库连接池的最大连接数
2)hibernate.c3p0.min_size 配置数据库连接池的最小连接数
3)hibernate.c3p0.timeout 配置数据库连接池中线程的过期时间
4)hibernate.c3p0.max_statements 配置数据库连接池的
5)hibernate.c3p0.idle_test_period 最大空闲时间,超过规定时间则丢弃该线程
6)hibernate.c3p0.acquire_increment 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数
我的配置文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///study</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 配置c3p0连接池 -->
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- c3p0连接池配置结束 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="domain/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
为了更方便的验证这一点,我在提一个hibernate的小知识,就是hibernate如何使用JDBC操作数据的方法事例代码如下:
@Test
public void test() {
//调用该函数并实现execute()方法
session.doWork(new Work() {
@Override
public void execute(Connection arg0) throws SQLException {
//这个连接就是我们在jdbc中操作的连接对象
//在这个方法中我们可以通过jdbc API操作数据库
}
});
}
好了,我们就在该函数中打印一下connection就知道c3p0配置成功了没有,打印结果如下:
说明我们成功了!!!