美文网首页
2018-03-06

2018-03-06

作者: ba2506f4be95 | 来源:发表于2018-03-06 14:36 被阅读19次

在hibernate配置文件中配置数据库连接池(c3p0)

  • 导入jar包:
    1. c3p0-0.9.5.2.jar;
    2. hibernate-c3p0-5.2.13.Final.jar
    3. mchange-commons-java-0.2.11.jar

hibernate.cfg.xml

<?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="connection.username">root</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql:///hibernate5</property>
    
        <!-- 配置hibernat的基本信息 -->
        <!-- hibernate 所使用的数据库方言 -->
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <!-- 执行操作时,是否在控制台打印sql语句 -->
        <property name="show_sql">true</property>
        <!-- 是否对sql语句进行格式化显示 -->
        <property name="format_sql">true</property>
        <!-- 制定自动生成数据表的策略,即程序运行可以在数据库自动生成数据表 -->
        <property name="hbm2ddl.auto">update</property>
        <!-- 删除对象对应的数据后,使这个对象的OID为null -->
        <property name="use_identifier_rollback">true</property>
        
        <!-- 配置c3p0数据库连接池 -->
        <!-- 数据库连接池的最大连接数 -->
        <property name="c3p0.max_size">10</property>
        <!-- 数据库连接池的最小连接数 -->
        <property name="c3p0.min_size">5</property>
        <!-- 当数据库连接池中的连接耗尽时, 同一时刻获取多少个数据库连接 -->
        <property name="c3p0.acquire_increment">2</property>
        
        <!-- 表示连接池检测线程多长时间检测一次池内的所有链接对象是否超时. 
        连接池本身不会把自己从连接池中移除,而是专门有一个线程按照一定的时间间隔来做这件事,
        这个线程通过比较连接对象最后一次被使用时间和当前时间的时间差来和 timeout 做对比,进而决定是否销毁这个连接对象
        -->
        <property name="c3p0.idle_test_period">2000</property>
        <!-- 数据库连接池中连接对象在多长时间没有使用过后,就应该被销毁 -->
        <property name="c3p0.timeout">2000</property>
        <!-- 缓存 Statement 对象的数量 -->
        <property name="c3p0.max_statements">10</property>
        
        <!-- hibernate.jdbc.fetch_size:实质是调用 Statement.setFetchSize() 方法设定 JDBC 的 Statement 读取数据的时候每次从数据库中取出的记录条数
            对Oracle有效,mysql无效
         -->
        <property name="hibernate.jdbc.fetch_size">100</property>
        <!-- hibernate.jdbc.batch_size:设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小 
            对Oracle有效,mysql无效
        -->
        <property name="hibernate.jdbc.batch_size">30</property>
        
        <!-- 设置hibernate的事务隔离级别
        <property name="connection.isolation">2</property>
         -->
         
        <mapping resource="com/zc/cris/pojo/News.hbm.xml"/>
    
    </session-factory>
</hibernate-configuration>

拓展:配置中的其他属性(jdbc.fetch_size 和 jdbc.batch_size)

[图片上传失败...(image-1df4b9-1520318030742)]

获取源代码请点击我

相关文章

网友评论

      本文标题:2018-03-06

      本文链接:https://www.haomeiwen.com/subject/gpalfftx.html