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. Entity Framework 5.0系列之数据操作

    Entity Framework将概念模型中定义的实体和关系映射到数据源,利用实体框架可以将数据源返回的数据具体化为对象:跟踪对象所做的更改:并发处理:将对象更改传播到数据源等.今天我们就一起讨论如何 ...

  2. WebDAV 配置及相关工具

    最近在项目中安装和调试服务器,杯具的是,服务器是内网地址,而且不可以直接SSH.SFTP,只能通过中间一台linux作为跳板,然后在SSH命令行里去操作目标机器. 如果只是命令行操作也就无所谓了,但是 ...

  3. 欢迎访问我的快站fbengine.kuaizhan.com

    欢迎访问我的快站 fbengine.kuaizhan.com

  4. [ZigBee] 11、ZigBee之睡眠定时器二

    1.前言 上一节讲了Zigbee的睡眠定时器利用外部按键使系统从休眠态唤醒到工作态,其核心在于: 61 void SysPowerMode(uchar mode) 62 { 63 if(mode &g ...

  5. redis系列-redis的使用场景

    redis越来越受大家欢迎,提升下速度,做下缓存,完成KPI之利器呀.翻译一篇文章<<How to take advantage of Redis just adding it to yo ...

  6. java.rmi.NoSuchObjectException: no such object in table

    jmx链接的时候,最简单的例子都行不通,郁闷,出现了: 参考:http://reiz6153.blog.163.com/blog/static/401089152009442723208/ 代码: M ...

  7. 2种方式解决nginx负载下的Web API站点里swagger无法使用

    Web API接口站点,引入了swagger来实时生成在线的api文档,也便于api接口的在线测试.swagger:The World's Most Popular Framework for API ...

  8. 03- Shell脚本学习--字符串和数组

    字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似: 单双引号的区别: 双 ...

  9. 纯js实现复制到剪贴板功能

    在网页上复制文本到剪切板,一般是使用JS+Flash结合的方法,网上有很多相关文章介绍.随着 HTML5 技术的发展,Flash 已经在很多场合不适用了,甚至被屏蔽.本文介绍的一款JS插件,实现了纯J ...

  10. Lua: 好的, 坏的, 和坑爹的

                                   好的       小巧: 20000行C代码 可以编译进182K的可执行文件 (Linux下).       可移植: 只要是有ANSI ...