Hibernate.cfg.xml 整理

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
    
	    <!-- 数据库基本配置 -->
	    <property name="connection.username">root</property>
	    <property name="connection.password">root</property>
	    <property name="connection.url">jdbc:mysql:///hibernate5</property>
	    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
	    
	    <!-- 配置数据库方言 -->
	    <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
	    
	    <!-- SQL打印在控制台 -->
	    <property name="show_sql">true</property>
	   	
	    <!-- 是否对SQL进行优化 -->
	    <property name="format_sql">true</property>
	   	
	    <!-- 指定生成数据表的策略 -->
	    <property name="hbm2ddl.auto">update</property>
	  
   	    <!-- 读取关联配置文件 -->
	    <mapping resource="hibernate/User.hbm.xml"/>

       <!-- 设置 Hibernate 的事务隔离级别 -->
       <property name="connection.isolation">2</property>
       
       <!-- 删除对象后, 使其 OID 置为 null -->
       <property name="use_identifier_rollback">true</property>

       <!-- 设定 JDBC 的 Statement 读取数据的时候每次从数据库中取出的记录条数 -->
       <property name="hibernate.jdbc.fetch_size">100</property>
        
       <!-- 设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小 -->
       <property name="jdbc.batch_size">30</property>
        
       <!-- 启用二级缓存 -->
       <property name="cache.use_second_level_cache">true</property>
        
       <!-- 配置使用的二级缓存的产品 -->
       <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
        
       <!-- 配置启用查询缓存 -->
       <property name="cache.use_query_cache">true</property>
        
       <!-- 配置管理 Session 的方式 -->
       <property name="current_session_context_class">thread</property>

            <!-- 需要关联的 hibernate 映射文件 .hbm.xml -->
       <mapping resource="com/User.hbm.xml"/>

       <class-cache usage="read-write" class="com.User"/>
       <collection-cache usage="read-write" collection="com.User.emps"/>

 </session-factory>
</hibernate-configuration>
-------------------

  
  
事务隔离级别:
为了解决多个事务并发会引发的问题。数据库系统提供了四种事务隔离级别供用户选择。
o Serializable:串行化。隔离级别最高
o Repeatable Read:可重复读。
o Read Committed:读已提交数据。
o Read Uncommitted:读未提交数据。隔离级别最差。
数据库系统采用不同的锁类型来实现以上四种隔离级别,具体的实现过程对用户是透明的。用户应该关心的是如何选择合适的隔离级别。
对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed,它能够避免脏读,而且具有较好的并发性能。
每个数据库连接都有一个全局变量@tx_isolation,表示当前的事务隔离级别。 JDBC数据库连接使用数据库系统默认的隔离级别。在Hibernate的配置文件中可以显示地设置隔离级别。每一种隔离级别对应着一个正整数。
Read Uncommitted: 1
Read Committed: 2
Repeatable Read: 4
Serializable: 8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值