• 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个),那么配置基本成功!

    执行结果

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    JS设置Cookie过期时间
    linq to xml
    ToDictionary的用法
    为程序使用内存缓存(MemoryCache)
    NuGet的几个小技巧
    IIS 的几个小技巧
    在Visual Studio中使用NuGet管理项目库
    在ASP.NET MVC中,使用Bundle来打包压缩js和css
    在C#中使用WMI查询进程的用户信息
    WMI测试器
  • 原文地址:https://www.cnblogs.com/pwc1996/p/4839140.html
Copyright © 2020-2023  润新知