1.创建Configuration类的对象

Configuration类的对象代表了应用程序到SQL数据库的映射配置。Configuration类的实例对象,提供一个buildSessionFactory()方法,该方法可以产生一个唯一的

SessionFactory类的对象。

根据使用的配置文件不同,得到这个代表了应用程序到SQL数据库的映射配置的Configuration类的对象方法也不同:

(1)使用hibernate.cfg.xml配置文件

Configuration  cfg   =   new  Configuration().configure();

通过新建的Configuration类对象,调用configure()方法 ,会自动加载hibernate.cfg.xml配置文件,而hibernate.cfg.xml配置文件中又引入了映射文件,所以最终返回的Configuration类对象  拿到了应用程序到SQL数据库的映射配置。

(2)使用hibernate.properties配置文件

Configuration  cfg  = new Configuration().addResource("News.hbm.xml").addResource("Bird.hbm.xml");

通过新建的Configuration类对象,调用addResource("News.hbm.xml")的方式去加载映射文件,因为hibernate.properties配置文件中没有指定映射文件,只有这样主动的加载映射文件,才能得到 拿到了应用程序到SQL数据库的映射配置的Configuration类对象 。

不推荐使用使用hibernate.properties配置文件,来获得Configuration类的对象。

(3)不使用任何配置文件

不使用任何文件,通过硬编码耦合的方式得到Configuration类对象 。

这种方式不推荐,因为不灵活,代码量大。

2.配置文件中的JDBC连接属性:

其中推荐使用C3P0数据源的方式连接数据库:

hibernate.connection.driver_class  属性  :   指定连接数据库的驱动类

hibernate.connection.url  属性 : 指定连接数据库服务的URL

hibernate.connection.username 属性 : 连接数据库的用户名

hibernate.connection.pool_size 属性  :设置采用默认DriverManager方式时,连接池的最大并发数  ,若采用C3P0数据源的方式,则不用指定该属性

hibernate.dialect 属性 :连接数据库所使用的方言

C3P0数据源属性:

hibernate.c3p0.max_size 属性 :  连接池的最大连接数

hibernate.c3p0.min_size 属性 :  连接池的最小连接数

hibernate.c3p0.timeout 属性 :    连接的超时时长

hibernate.c3p0.max_statements   属性 :   缓存Statement的数量

3.配置文件中的数据库方言

Hiberante底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持标准的SQL语句,但是所有的数据库都对标准SQL进行了扩展。所有不同的数据库在SQL的语法细节上有所差异 ,从而形成了数据库方言.

只要我们设置了合适的数据库方言,Hibernate就会自动应付底层数据库访问的上的细节差异。

hibernate.dialect 属性 :连接数据库所使用的方言

常用数据库的方言  可以网络查询。

4.可选的JNDI数据源的连接属性

可以使用默认的DriverManager ,也可使用C3P0数据源,也可使用JNDI数据源的方式来连接数据库。

如果无须Hibernate自己管理数据源,而是直接访问容器管理数据源,Hibernate可以使用JNDI (Java Naming  Directory  Interface ,java命名目录接口)数据源。

相关属性:

hibernate.connection.datasource 属性  :  数据源JNDI名字

hibernate.jndi.url 属性  :指定JNDI提供者的URL  .如果该应用引入了JNDI  ,则无须指定该属性

hibernate.jndi.class 属性 : 指定JNDI实现类  .如果该应用引入了JNDI  ,则无须指定该属性

hibernate.connection.username 属性  : 数据库用户名

hibernate.connection.password 属性  :数据库的密码

5.配置文件中的Hibernate事务 属性

6.配置文件中二级缓存相关属性

7.配置文件中外连抓取属性

8.配置文件中指定映射文件

保证映射文件,和它对应的持久化类文件 在同一个目录中。

<mapping resource="org/fkjava/test/News.hbm.xml" />

9.其他常用属性  :

hibernate.show_sql 属性 :是否在控制台输出Hibernate生成的SQL语句 。  可选值  true 和 false

hibernate.format_sql 属性 :是否将SQL语句转化成形式良好的格式  。可选值 true 和 false

hibernate.hbm2ddl.auto 属性  :当创建SessionFactory时,是否根据映射文件中的配置自动创建数据表。可选值  update ,create 和create-drop。其中如果使用create-drop值  当显示关闭 SessionFactory类的对象时,将drop刚创建的数据表。

Hibernate之深入Hibernate的配置文件的更多相关文章

  1. Hibernate SQL方言 (hibernate.dialect) Spring配置文件applicationContext.xml

    转自:http://www.cnblogs.com/wj-wangjun/archive/2009/10/21/1587624.html Hibernate SQL方言 (hibernate.dial ...

  2. hibernate.cfg.xml hibernate 配置文件模板

    <?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition ...

  3. hibernate篇章三-- hibernate配置文件hibernate.cfg.xml的详细解释

    <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' ...

  4. Hibernate(三)之配置文件详解

    一.核心配置文件(hibernate.cfg.xml) <?xml version="1.0" encoding="UTF-8"?> <!DO ...

  5. Hibernate 系列 02 - Hibernate介绍及其环境搭建

    引导目录: Hibernate 系列教程 目录 昨晚喝多了,下午刚清醒,继续搞Hibernate.走起. 觉得还行的话,记得点赞哈,给我这个渣渣点学习的动力.有错误的话也请指出,省的我在错误上走了不归 ...

  6. Hibernate 系列 04 - Hibernate 配置相关的类

    引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hib ...

  7. (Hibernate进阶)Hibernate系列——总结篇(九)

    这篇博文是hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我 ...

  8. (Hibernate进阶)Hibernate基本映射(三)

    介绍Hibernate的经典内容:对象关系映射.主要介绍映射的基本概念,映射的分类,映射文件. 概念 ORM(Object Relational Mapping),即对象关系映射.它的作用就是在关系型 ...

  9. Hibernate学习0.Hibernate入门

    Hibernate是什么 面向java环境的对象/关系数据库映射工具. 1.开源的持久层框架. 2.ORM(Object/Relational Mapping)映射工具,建立面向对象的域模型和关系数据 ...

  10. hibernate.properties与hibernate.cfg.xml 区别

    Hibernate的数据库连接信息是从配置文件中加载的. Hibernate的配置文件有两种形式:一种是XML格式的文件,一种是properties属性文件. 一)hibernate.cfg.xml ...

随机推荐

  1. 【BZOJ3924】幻想乡战略游戏(动态点分治)

    [BZOJ3924]幻想乡战略游戏(动态点分治) 题面 权限题...(穷死我了) 洛谷 题解 考虑不修改 发现一个贪心的做法 假设当前放在当前位置 如果它有一个子树的兵的总数大于总数的一半 那么,放到 ...

  2. 模拟退火小结(Bzoj3680:吊打xxx)

    简介 就是模拟退火的物理过程,每次随机逼近乘上温度,以\(e^{\Delta/T}\)的概率接受答案,随机一个概率比较 然后就是调参+乱搞 题目 Bzoj3680:吊打xxx 代码 # include ...

  3. Eclipse常用不常用快捷键

    逼格高且常用的7个快捷键:Ctrl+O:列出该类下的所有方法   Ctrl+E:列出打开的所有类   Shift+Enter:在当前行下一行创建空白行(Ctrl+Shift+Enter:在当前行上一行 ...

  4. ES6学习总结二(数组的四个方法,字符串)

    数组 1 map 映射 一个对一个 如:分数数组[34,56,78,99]映射为[不及格,不及格,及格,及格]; 等级数组[23,56,89]映射为 [ {name:'lmx',level:1,rol ...

  5. Asp.Net Boilerplate Project (ABP) 视频教程

    转自youtube:https://www.youtube.com/playlist?list=PLlu_PkRHZce-EtuVO1zVQpNgrB7Hiu1vu 虽然全部都没有声音,但看操作还是可 ...

  6. signalR的集群与负载均衡

    signalR是相当不错的websocket应用,最近要做集群和负载均衡 主要用到了redis进行集群,signalR的backplane集成redis. 细节,订阅redis之后注意database ...

  7. 【python学习笔记】5.条件、循环和其他语句

    [python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块     impo ...

  8. wifislax中的linset软件钓鱼教程

    wifislax中很多破解wifi密码的工具,下面就来说说里面的linset软件的钓鱼过程,国内很多人知道这个方法,不过没有总结,youtube上视频一大把,我刚才测试了一把,还是打算记录一下攻击过程 ...

  9. 腾讯云GAME-TECH游戏开发者技术沙龙(深圳)开启报名啦~

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:由腾讯游戏云发表在云+社区 腾讯云GAME-TECH沙龙继1月杭州站后,将于3月30日来到深圳站,与游戏厂商和游戏开发者,畅聊游戏安 ...

  10. python web开发-flask中日志的使用

    Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用l ...