7.C3P0
来源:互联网 发布:手机淘宝首页大图尺寸 编辑:程序博客网 时间:2024/06/05 04:20
1.为什么一定要使用C3P0:
C3P0: 一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有hibernate,spring等。
默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池。但这个连接池性能不佳,因此官方也只是建议仅在开发环境下使用。Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool。
这里说一下为什么一定要使用C3P0吧:
1)hibernate官网推荐
2 ) 解决数据库重启后tomcat在不需要重启的情况下即可重新获得数据连接的问题。
2. 在Hibernate中配置数据源:
1.导入相关的jia包:在 LibrarySupport\hibernate-release-4.2.4.Final\lib\optional\c3p0路径下:
c3p0-0.9.2.1.jar;
hibernate-c3p0-4.2.4.Final.jar;
mchange-commons-java-0.2.3.4.jar
2.在主配置文件hibernate.cfg.xml中配置
<!-- 配置C3P0 -->
<!--最少连接数-->
<property name="hibernate.c3p0.min_size">4</property>
<!--最大连接数-->
<property name="hibernate.c3p0.max_size">10</property>
<!--最多维护多少个对象-->
<property name="hibernate.c3p0.max_statements">100</property>
<!--最少维护多少个对象-->
<property name="hibernate.c3p0.acquire_increment">5</property>
<!--session的失效时间-->
<property name="hibernate.c3p0.timeout">3600</property>
<!--守护进城多长时间进行检查一次connection对象是否失效-->
<property name="hibernate.c3p0.idle_test_period">36000</property>
3.测试:
//测试C3P0
@Test
public void testC3P0(){
//① 加载配置
Configuration cfg = new Configuration();
cfg.configure() ; //从classpath 类路径下加载默认配置文件:hibernate.cfg.xml
//② 创建SessionFactory
ServiceRegistryBuilder srb = new ServiceRegistryBuilder();
srb.applySettings(cfg.getProperties());
ServiceRegistry serviceRegistry = srb.buildServiceRegistry() ;
SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry) ;
System. out.println(sessionFactory);
//③ 创建Session对象
Session session = sessionFactory.openSession();
session.doWork( new Work(){
@Override
public void execute(Connection connection) throws SQLException {
System. out.println(connection);
}
});
session.close();
}
0 0
- 7.C3P0
- C3P0
- c3p0
- c3p0
- c3p0
- C3P0
- c3p0
- C3P0
- C3P0
- c3p0
- c3p0
- C3p0
- C3P0
- c3p0
- c3p0
- c3p0
- C3P0
- c3p0
- linux学习笔记--cut命令
- caffe+cuda编程
- 按键控制LED实现启动、停止按钮
- 最小生成树算法---Kruscal算法和Prim算法(入门)
- java操作Excel文件
- 7.C3P0
- 02_线性表的链式表示和实现
- Web基础知识五之Html表单标记
- 知识库--StandardService + Lifecycle(start/stop)+initialize(72)
- VMware 虚拟机如何连接网络
- Mac OS X 下 su 命令提示 sorry
- 8.Session的一级缓存
- VS2013程序打包部署详细图解
- Java高级之虚拟机垃圾回收机制