1)maven中配置
添加Hibernate集成的c3p0jar包
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>4.3.6.Final</version>
</dependency> 2)hibernate.cfg.xml <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.max_size">2</property>
<property name="hibernate.c3p0.min_size">2</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>
<property name="hibernate.c3p0.validate">false</property> 3)为何要使用数据库连接池
1. 数据库连接实质上就是TCP连接,建立连接和撤销连接的开销很大(3次握手)
2. 如果不使用数据库连接池,那么操作一次数据库关闭session,就要创建一个连接并撤销
3. 使用数据库连接池,可以一次性申请若干个数据库连接,一个线程要使用数据库连接,那么就向数据库连接池申请。
如果申请到,则使用,并在使用完成之后归还给连接池;
如果没有申请到,且连接池中连接数小于连接池最大数目,那么就再建立连接(一次建立数目可以设置);
如果没有申请到,且连接池中连接数已经等于最大数目,那么线程阻塞,等待其他线程归还数据库连接
本文介绍如何在Maven项目中配置Hibernate与C3P0数据库连接池,包括添加依赖、配置属性等步骤,并阐述了使用数据库连接池的意义。
3031

被折叠的 条评论
为什么被折叠?



