1.Hibernate 配置文件主要用于配置**数据库连接**和 Hibernate 运行时所需的**各种属性**。

2.每一个 Hibernate 配置文件对应一个 Configuration 对象,从前一篇文章知道,可以通过 Configuration 的 configure() 方法来读取 Hibernate 的配置文件,默认读取 `hibernate.cfg.xml`。

3.配置数据库连接的基本信息,在 <session-factory> 节点内配置。

(1)JDBC 连接属性

<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://localhost:3306/hibernate</property>

(2)使用 C3p0 数据源

①导入 Jar 包

②配置

<!-- 配置最大连接数 -->
<property name="c3p0.max_size">20</property>
<!-- 配置最小连接数 -->
<property name="c3p0.min_size">5</property>
<!-- 缓存 statement 对象 -->
<property name="c3p0.max_statements">10</property>
<!-- 连接池中连接耗尽时,向数据库一次要多少个连接 -->
<property name="c3p0.acquire_increment">10</property>
<!-- 超时时间 -->
<property name="c3p0.timeout">2000</property>
<!-- 检测线程每隔多长时间检测一次池内所有连接是否超时 -->
<property name="c3p0.idle_test_period">2000</property>

(3)数据库方言的配置

<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

tip: Mysql 的 InnoDB 引擎在进行数据操作时,会进行锁行,而不是锁表。在高并发的情况下,使用 InnoDB 引擎较好。

4.常用属性

(1)是否打印 sql,取值 true/false

<property name="show_sql">true</property>

(2)打印的 sql 是否进行格式化,取值 true/false

<property name="format_sql">true</property>

5.建表策略

<property name="hbm2ddl.auto">update</property>

取值: create|upadte|create-drop|validate

(1)create 不论是否更改了表结构,每次都重新创建表。

(2)upadte 只有在更改了表结构的前提下,才会去更新表,但是不会删除已有的数据。

(3)create-drop 回根据 hibernate.cfg.xml 文件生成表,但是 SessionFactory 一关闭,表就自动删除。

(4)validate 会和数据库中的表进行比较,若 hibernate.cfg.xml 文件中的列在数据表中不存在,则抛出异常。

6.jdbc.fetch_size 和 jdbc.batch_size (Mysql 不支持)

(1)hibernate.jdbc.fetch_size:实质是调用 Statement.setFetchSize() 方法,设定 JDBC 的 statement 读取数据时,每次从数据库中取出的记录的条数。

Oracle 支持 Fetch Size 特性,当 fetchSize = 100 的时候,性能最好。

(2)hibernate.jdbc.batch_size:设定对数据库进行批量删除、批量更新、批量插入的时候的批次大小。

Oracle 数据库 batchSize =30 的时候比较合适。

7. 配置 Entity.hbm.xml 文件

<mapping resource="com/nucsoft/hibernate/News.hbm.xml"/>

8.总结

介绍了 Hibernate 配置文件,包括基本配置与 Hibernate 本身的配置。

补充:

hibernate.cfg.xml 配置文件:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//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://localhost:3306/hibernate</property>
<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- 配置c3p0 数据源信息 -->
<!-- 配置最大连接数 -->
<property name="c3p0.max_size">20</property>
<!-- 配置最小连接数 -->
<property name="c3p0.min_size">5</property>
<!-- 缓存 statement 对象 -->
<property name="c3p0.max_statements">10</property>
<!-- 连接池中连接耗尽时,向数据库一次要多少个连接 -->
<property name="c3p0.acquire_increment">10</property>
<!-- 超时时间 -->
<property name="c3p0.timeout">2000</property>
<!-- 检测线程每隔多长时间检测一次池内所有连接是否超时 -->
<property name="c3p0.idle_test_period">2000</property> <!-- 配置 Hibernate 的基本信息 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property> <!-- 指定自动生成数据表的策略 -->
<property name="hbm2ddl.auto">update</property> <!-- mysql 不支持此特性 -->
<property name="hibernate.jdbc.batch_size">30</property>
<!-- mysql 不支持此特性 -->
<property name="hibernate.jdbc.fetch_size">100</property> <!-- 需要关联的 Entity.hbm.xml -->
<mapping resource="com/nucsoft/hibernate/News.hbm.xml"/>
</session-factory>
</hibernate-configuration>

Hibernate —— Hibernate 配置文件的更多相关文章

  1. 3.一起来学hibernate之配置文件2

    之前的映射文件配置都是简单的.基础的配置,只涉及到单个javabean,对于单个javabean的增删改查都能很好的.简单的去完成. 但是知道简单配置远远不够,并不能完成很多复杂的情况,比如对象与对象 ...

  2. 2.一起来学hibernate之配置文件1与持久化对象

    学框架,配置都是不可少的,有了配置,框架才知道我们想做什么,才知道如何去执行我们需要的操作! hibernate的配置文件,总体来说分为两个部分: 1.主配置文件hibernate.cfg.xml文件 ...

  3. Hibernate的配置文件以及用法

    一. 三大框架 Hibernate 1.安装hibernate插件至ecilpse 2.进行配置 2.1 主配置文件 <?xml version="1.0" encoding ...

  4. eclipse 新建 maven 项目 添加 spring hibernate 的配置文件 详情

    主要配置文件 pom.xml 项目的maven 配置文件 管理项目所需 jar 依赖支持 web.xml 项目的总 配置文件  :添加 spring和hibernate 支持 applicationC ...

  5. Hibernate常用配置文件详解

    本文转载自:http://blog.csdn.net/csh624366188/article/details/7578939 初学hibernate的童鞋,刚开应该都有这种感觉,hibernate的 ...

  6. Hibernate的配置文件解析

    配置mybatis.xml或hibernate.cfg.xml报错: <property name="connection.url">jdbc:mysql://loca ...

  7. hibernate通过配置文件生成数据库信息

    hibernate可以通过配置文件在数据库生成相应的数据库信息.也可以把数据库的信息生成相应的代码(实体类操作类和映射文件) 下面是通过代码默认对hibernate.cfg.xml信息在数据库生成信息 ...

  8. hibernate 基本配置文件及CRDU的操作和基本的HQL查询

    以下所有内容保存在 E:\JavaWebSrc\firstHibernate 目录中,项目名称为firstHibernate,使用IDEA打开,项目所需jar包在  F:\常用综合\常用jar包\hi ...

  9. 1-2 hibernate主配置文件hibernate.cfg.xml详解

    详 http://www.cnblogs.com/biehongli/p/6531575.html Hibernate的主配置文件hibernate.cfg.xml 1:Hibernate的主配置文件 ...

随机推荐

  1. 免费的HTML5版uploadify送上

    相信有不少同学用过uploadify这一款文件上传插件,它支持多文件选择.能显示进度条.可配置性高,总体来说是比较好用的.官网有两个版本供下载,分别是flash版和HTML5版.不过令人惋惜的是,HT ...

  2. 我的ORM之七-- 权限

    我的ORM索引 权限范围 权限可以控制以下部分: 页面 按钮 表格列 (未完成) 菜单表的行 其中: 页面权限,需要在程序请求之前进行判断. 按钮权限,表格列权限,需要在请求页面之后,通过JavaSc ...

  3. 设计模式之美:Null Object(空对象)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Null Object 的示例实现. 意图 通过对缺失对象的封装,以提供默认无任何行为的对象替代品. Encapsulate t ...

  4. Angular Input格式化

    今天在Angular中文群有位同学问到:如何实现对input box的格式化.如下的方式对吗? <input type="text" ng-model="demo. ...

  5. css选择器优先级全解析

    这样一个问题: <!doctype html> <htmllang="en"> <head> <metacharset="UTF ...

  6. 使用Guava提供的transform批量转换

    实际开发了,为了快速查询,我们会把日期以Long类型的方式存储到数据库中,比如20000000000000L,但显示的时候,要完整的日期,即yyyy-MM-dd的格式显示. 这个时候,我们就可以使用C ...

  7. 据说每个大牛、小牛都应该有自己的库——DOM处理

    这几天整理了一下思路,本来觉得DOM部分会有很多东西,但是忽然发现频繁使用的其实并不太多 class class处理部分主要有四个 hasClass:检查元素是否包含某个class addClass: ...

  8. Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP

    <Windows Azure Platform 系列文章目录> 本文介绍的是由世纪互联运维的Windows Azure China. 相比于Global Azure (http://www ...

  9. jmx : ClientCommunicatorAdmin Checker-run

    今天遇到一个问题: 执行bat,关闭jmx的时候,由于程序关闭之后又去连接了一次,cmd窗口报错,类似: 2013-7-11 15:58:05 ClientCommunicatorAdmin rest ...

  10. CSS折行小记

    最近项目中遇到字段内容过长的显示问题. 后来在网上找了资料,http://www.php100.com/html/webkaifa/DIV_CSS/2009/0416/2453.html  用了td( ...