Hibernate 学习之路(三): hibernate的核心配置文件详解

在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)

mark

获取源代码请点击我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值