Hibernate配置文件解释

Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性
每个Hibernate配置文件对应一个Configuration对象
Hibernate配置文件可以有两种格式:
  hibernate.properties
  hibernate.cfg.xml----常用

Hibernate.cfg.xml的常用属性

JDBC连接属性
  connection.url:数据库url
  connection.username:数据库用户名
  connection.password:数据库用户密码
  connection.driver_class:数据库JDBC驱动
  dialect:配置数据库方言,根据底层的数据库不同产生不同的sql语句,Hibernate会针对数据库的特性在访问时进行优化

在Hibernate中使用C3P0
  1.导入jar包:hibernate-release-4.3.7-Final/lib/optional/c3p0/*.jar
  2.加入配置

C3P0数据库连接池属性
  hibernate.c3p0.max_size:数据库连接池的最大连接数
  hibernate.c3p0.min_size:数据库连接池的最小连接数
  hibernate.c3p0.timeout:数据库连接池中连接对象在多长时间没有使用过后,就应该被销毁
  hibernate.c3p0.max_statements:缓存Statement对象的数量
  Hibernate.c3p0.idle_test_period:表示连接池检测线程多长时间检测一次池内的所有连接对象是否超时,连接池本身不会把自己从连接池中移除,而是专门有一个线程按照一定的时间间隔来做这件事,这个线程通过比较连接对象最后一次被使用时间和当前时间的时间差来和timeout做对比,进而决定是否销毁这个连接对象
  Hibernate.c3p0.acquire_increment:当数据库连接池中的连接耗尽时,同一时刻获取到多少个数据库连接

hibernate.jbbc.fetch_size:实质是调用Statement.setFetchSize()方法设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数
  例如一次查询1万条记录,对于Oracle的jdbc驱动来说,是不会1次性把1万条取出来的,而只会取出fetchSize条数,当结果集遍历完了这些记录以后再去数据库去fetchSize条数据。因此大大节省了无谓的内存消耗。fetchSize设的越大,读数据库的次数越少,速度越快;fetchSize越小,读数据库的次数越多,速度越慢。Oracle数据库的JDBC驱动默认的fetchSize=10,是一个保守的设定,根据测试,当fetchSize=50时,性能会提升1倍之多,当fetchSize=100,性能还能继续提升20%,fetchSize继续增大,性能提升的就不显著了。并不是所有的数据库都支持fetchSize特性,例如MySQL就不支持。

hibernate.jdbc.batch_size:设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,类似于设置缓冲区大小的意思。batchSize越大,批量操作时向数据库发送sql的次数越小,速度就越快。
  测试结果是当Batch Size=0的时候,使用Hibernate对Oracle数据库删除1万条记录需要25秒,Batch Size=50的时候,删除仅需要5秒!Oracle数据库batchSize=30的时候比较合适。

配置文件例子:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7         <!-- 配置连接数据库的基本信息 -->
 8         <property name="connection.username">scott</property>
 9         <property name="connection.password">tiger</property>
10         <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
11         <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
12
13         <!-- 配置hibernate基本信息 -->
14         <!-- hibernate所使用的数据库方言 -->
15         <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
16
17         <!-- 执行操作时是否在控制台打印sql -->
18         <property name="show_sql">true</property>
19
20         <!-- 是否对SQL进行格式化 -->
21         <property name="format_sql">true</property>
22
23         <!-- 指定自动生成数据表的策略 -->
24         <property name="hbm2ddl.auto">update</property>
25
26         <!-- 设置Hibernate 的事务的隔离级别 -->
27         <property name="connection.isolation">2</property>
28
29         <!-- 删除对象后,使其OID置为null -->
30         <property name="hibernate.use_identifier_rollback">true</property>
31
32         <!-- 配置C3P0数据源 -->
33         <property name="hibernate.c3p0.max_size">10</property>
34         <property name="hibernate.c3p0.min_size">5</property>
35         <property name="c3p0.acquire_increment">2</property>
36
37         <property name="c3p0.idle_test_period">2000</property>
38         <property name="c3p0.timeout">2000</property>
39
40         <property name="c3p0.max_statements">10</property>
41
42         <!-- 设定JDBC的Statement 读取数据的时候每次从数据库中取出的数据条数 -->
43         <property name="hibernate.jdbc.fetch_size">100</property>
44
45         <!-- 设定对数据库进行批量删除、批量更新和批量插入的时候的批次的大小 -->
46         <property name="hibernate.jdbc.batch_size">30</property>
47
48         <!-- 指定关联的.hbm.xml 文件 -->
49         <mapping resource="com/yl/hibernate/entities/News.hbm.xml"/>
50
51
52     </session-factory>
53 </hibernate-configuration>

  

时间: 2025-01-13 16:18:30

Hibernate配置文件解释的相关文章

hibernate配置文件详细解释

<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性.hibernate.sourceforge.net/hibernate-c

hibernate配置文件hibernate.cfg.xml的详细解释

<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性.hibernate.sourceforge.net/hibernate-c

Hibernate配置文件和映射元素解释

象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素. AD:干货来了,不要等!WOT2015 北京站演讲PPT开放下载! <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XM

hibernate配置文件详细解析

在javaweb开发中,hibernate框架的是常用的,能帮我们节省大量的时间,以下是hibernate的配置文件解析. hibernate配置文件的默认名为:hibernate.cfg.xml 默认在WEB-INF/class下 . <?xml version="1.0" encoding="utf-8"?> 配置文件dto信息(DTO解释百度百科) <!DOCTYPE hibernate-configuration PUBLIC "

hibernate配置文件分析

<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性.--><!--hibernate.sourceforge.ne

Hibernate配置文件——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"> <

5 -- Hibernate的基本用法 --4 深入Hibernate配置文件

Hibernate的持久化操作离不开SessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession()方法可打开Session对象.该对象通常由Configuration对象产生. 每个Hibernate配置文件对应一个Configuration对象.在极端的情况下,不使用任何配置文件,也可创建Configuration对象. 5.4.1 创建Configuration对象 5.4.2 hibernate.properties文件与hibern

Hibernate配置文件的hbm2ddl.auto属性

今天遇到一个有意思的问题,我目前做的一个网站采用Spring MVC + Spring + Hibernate的架构,我通过页面插入了一些数据到数据库,可是每次重启tomcat之后,数据都莫名其妙地丢失了,但是我确定数据库中原本是有数据的,数据一定是在应用服务器重启之后被清除的,百思不得其解,忽然想到有可能是昨天修改了Hibernate配置文件导致的. 我的Hibernate配置文件: <hibernate-configuration> <session-factory> <

[原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------