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>
转载于:https://www.cnblogs.com/dreamfree/p/4121770.html
Hibernate配置文件解释相关推荐
- linux查看xml文件的配置,Hibernate配置文件hibernate.cfg.xml的详细解释
Hibernate配置文件hibernate.cfg.xml的详细解释 [日期:2012-12-13] 来源:Linux社区 作者:jqyp [字体:大 中 小] /p> "-//Hi ...
- hibernate配置文件hibernate.cfg.xml的详细解释
<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <? ...
- hibernate.cfg.xml hibernate 配置文件模板
<?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition ...
- 从一个hibernate配置文件中了解到的东西
2019独角兽企业重金招聘Python工程师标准>>> 业务场景: 先展示一份hibernate配置文件,然后来详细说里面蕴含的东西. <?xml version=" ...
- [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate配置文件
进入Java的学习,没少接触配置文件,尤其学习SSH时,配置文件尤其多,Struts配置文件Struts.xml,Spring配置文applicationContext.xml,Hibernate配置 ...
- Hibernate配置文件与映射文件详解
Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=P ...
- 连接oracle配置文件参数,Hibernate3 +Oracle10g 集群,hibernate配置文件中如何编写连接参数...
遇见问题: 使用hibernate3来连接Oracle10g的集群,连接时不稳定,有时候正常连接,有时候不能正常连接.不知道是不是配置文件有问题,请大家帮我查看一下,谢谢各位了! 开发工具:Eclip ...
- hibernate配置文件和映射文件的dtd文件
位置都在hibernate的jar包中的org/hibernate中,打开window-preferences,然后搜索xml,找到xml-catalog,点add按钮,选择第一个(catalog e ...
最新文章
- 文巾解题 167. 两数之和 II - 输入有序数组
- DevExpress的TextEdit控件没法调整高度解决
- 从本地上传项目到 github 以及从github 下载项目到本地环境
- 肾炎治疗有效方(湿热壅滞三焦,气机不利)
- 耗尽您CPU资源的Explored病毒清除法
- 介绍一个 Windows 10 清理右键菜单和新建菜单的小工具 ContextMenuManager
- stylus之关键字参数(Keyword Arguments)
- 图像识别_2010暑期实训有感【二】
- effective C++ 条款 11:在operator= 处理‘自我赋值’
- Jquery append 方法在ie8不兼容问题
- 苹果或推出不到两千元的iPhone!安卓手机不淡定了
- IE 不支持单引号(')的实体名称(amp;apos;)
- 使用cdn和npm引入的区别_带你体验 Vue2 和 Vue3 开发组件有什么区别
- 武汉晴川学院计算机,2019武汉晴川学院专业排名
- linux office转换pdf
- 方舟正版服务器连接超时,方舟连接超时解决方案是什么
- 什么是X86和X86-64
- 套头文件html重复,关于C++头文件重复包含的问题
- linux中mtd是什么目录,Linux mtd system
- python延迟几秒_python 中止几秒执行下一步、