Hibernate笔记——C3P0配置
Hibernate作为持久层(ORM)框架,操作数据库,自然也就离不开数据库连接池了。其支持多种连接池,这里就用最熟悉的C3P0连接池。
C3P0连接池前面已经介绍了并使用很多次了就不再详细说明了。
一共就两个步骤,首先导入C3P0架包(当然还要有hibernate框架包和mysql驱动包),然后在Hibernate配置文件写配置信息
第一步-导包
要注意,导入的c3p0架包中需含有hibernate-c3p0.xxx.jar,为方便可直接复制 Hibernate框架/lib/optional/c3p0 内所有架包
第二步-写配置
hiberna.cfg.xml配置内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
  <session-factory>
    <property name="connection.url">jdbc:mysql://localhost:3306/db_pwc</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.username">pwc</property>
    <property name="connection.password">123456</property>
    <property name="provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="show_sql">true</property>
    <property name="hbm2ddl">update</property>
    <property name="c3p0.max_size">20</property>
    <property name="c3p0.min_size">5</property>
    <property name="c3p0.timeout">5000</property>
    <property name="c3p0.max_statements">20</property>
    <property name="c3p0.acquire_increment">2</property>
  </session-factory>
</hibernate-configuration>
Hibernate默认是自带的Hibernate Connection Pool连接池,要使用c3p0连接池需设置provider_class属性值,填写的值可在导入的c3p0包内找到C3P0ConnectionProvider类,复制其全名即可。
property节点name属性配置中c3p0开头的皆为连接池配置信息,详细信息自行百度。
最后写测试类进行测试
Test.java
package com.pwc.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Test {
    private static Configuration configuration=new Configuration();
    private static SessionFactory factory;
    static{
        factory=configuration.configure("hibernate.cfg.xml").buildSessionFactory();
    }
    public static void main(String[] args) {
        Session session=factory.openSession();
        Transaction transaction = session.beginTransaction();
        transaction.begin();
        transaction.commit();
        session.close();
        factory.close();
        System.out.println("OK!");
    }
}
设置断点,调试运行,如果查看连接中出现和配置信息中c3p0.min_size属性值一样(本例值为5,即连接用户增加5个),那么配置基本成功!
版权声明:本文为博主原创文章,未经博主允许不得转载。
Hibernate笔记——C3P0配置的更多相关文章
- hibernate 3.* C3P0配置   以及为什么需要连接池!
		Hibernate自带的连接池算法相当不成熟. 它只是为了让你快些上手,并不适合用于产品系统或性能测试中. 出于最佳性能和稳定性考虑你应该使用第三方的连接池.只需要用特定连接池的设置替换 hibern ... 
- Hibernate笔记——关联关系配置(一对多、一对一和多对多)
		原文:http://www.cnblogs.com/otomedaybreak/archive/2012/01/20/2327695.html ============================ ... 
- (30)java web的hibernate使用-c3p0连接池配置
		hibernate支持c3p0连接池 需要导入c3p0的jar包 <!-- 配置连接驱动管理类 --> <property name="hibernate.connecti ... 
- Hibernate 5.x 配置 C3P0 数据库连接池
		Hibernate 5.x 配置 C3P0 连接池 首先准备好需要的 jar 包,这里我准备的是 Hibernate 5.2.10 版本: hibernate-core-5.2.10.Final.ja ... 
- 攻城狮在路上(壹) Hibernate(十五)--- Hibernate的高级配置
		一.配置数据库连接池: 1.使用默认的数据库连接池: Hibernate提供了默认了数据库连接池,它的实现类为DriverManegerConnectionProvider,如果在Hibernate的 ... 
- 框架Hibernate笔记系列 基础Session
		标题:框架Hibernate笔记 资料地址: 1. www.icoolxue.com 孔浩 1.背景简介 Hibenate是JBoss公司的产品.它是数据持久化的框架.Usually,我们使用JDBC ... 
- Hibernate整合C3P0实现连接池
		Hibernate整合C3P0实现连接池 hibernate中可以使用默认的连接池,无论功能与性能都不如C3PO(网友反映,我没有测试过),C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI ... 
- hibernate入门-基本配置及简单的crud操作
		框架来说主要是需要写大量的配置文件,hibernate相比mybatis来说更强大,移植性更好: 1.类和数据库的映射配置:配置文件命名一般--类名.hbm.xml (user.hbm.xml),与实 ... 
- C3P0配置实战
		C3P0: 一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. 默认情况下(即没有配置连接池的 ... 
随机推荐
- 动态链接库知识点归纳之一(DLL概念,如何建立,如何使用,如何优化,如何查看)
			简单的总结一些动态链接库的一些知识,方便以后查找. 首先,新建一个动态链接库 (1) 打开编辑器,选择WIN32项目, dll,如下图,项目名字为:test,选择空项目.如下图 (2) ... 
- Factorial Trailing Zeroes
			Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ... 
- Week8 软件规格说明书
			1.概述 本项目组所开发的软件为一个基于Android的手机端的时间管理软件,主要功能为时间管理软件,可以用于管理待办事项,记录一些需要提醒的信息等.有事件提醒.与Google账户同步.课程表等功能. ... 
- Grails 1.2参考文档速读(10):Controller
			转载:http://keyvalue.blog.51cto.com/1475446/303260 从本篇起,我们将开始进入Grails的Web层,首先让我们从Controller说起. G ... 
- Jquery方法的应用
			<body> <div id="one"><span>one</span></div><div class=&qu ... 
- MyEclipse: Can't load IA 32-bit .dll on a AMD 64-bit platform
			java.lang.UnsatisfiedLinkError: D:\Tomcat7\apache-tomcat-7.0.59\bin\tcnative-1.dll: Can't load IA 32 ... 
- [转]后缀自动机(SAM)
			原文地址:http://blog.sina.com.cn/s/blog_8fcd775901019mi4.html 感觉自己看这个终于觉得能看懂了!也能感受到后缀自动机究竟是一种怎样进行的数据结构了. ... 
- PS4 Razor  GPU
			这东西,从出来就感觉没用,各种请教也都没有帮助.虽然搞明白了 rt啊tex啊buffer啊但是就是感觉对于抓bug没有用处.所以从来都是像巫师一样靠直觉,再用科学的方法来测试,其实就是让ps retu ... 
- /MT /MD /ML /MTd /MDd /MLd 的区别
			Multithreaded Libraries Performance The single-threaded CRT is no longer ( in vs2005 ) available. Th ... 
- 使用css3伪元素制作时间轴并且实现鼠标选中高亮效果
			利用css3来制作时间轴的知识要点:伪元素,以及如何在伪元素上添加锚伪类 1)::before 在元素之前添加内容. 2)::after 在元素之后添加内容. 提示:亦可写成 :before :aft ... 
