摘要: 版权声明:本文为博主原创文章,如需转载请标注转载地址。

博客地址:http://www.cnblogs.com/caoyc/p/5595870.html

一、主配置文件命名规则

  1、默认名称:hibernate.cfg.xml

  2、默认路径:src根目录。在编译后也是类的根目录

  Question:在程序中如何加载主配置文件呢?

  Answer: new Configuration().configure()

  当然我们一般建议使用默认名称和默认路径,也就是说名称可以更改,路径也可以更改。

  Question:我们更改主配置文件名称或路径后如何来加载呢?

  Answer:我们知道对于Configuration类中的configure有几个重载方法,起返回值也同样是Configuration对象

      Configuration configure() :加载默认名称和默认路径的主配置文件

      Configuration configure(String resource) :可以加载指定位置的配置文件(在本项目中)

      Configuration configure(File configFile) :这里可以加载本地的配置文件(在本地计算机中)

      Configuration configure(URL url) :可以加载互联网上的配置文件

二、一个简单的hibernate.cfg.xml

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory name="mysqldb"> <!-- 配置方言:选择数据库类型 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 配置数据库连接信息 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///test?characterEncoding=utf8</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property> <!-- 允许显示sql语句 -->
<property name="show_sql">true</property>
<!-- 导入映射文件 -->
<mapping resource="com/mypro/domain/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>

 

三、知识点介绍

1、定义xml版本和编码方式

 <?xml version="1.0" encoding="UTF-8"?>

2、表明解析本XML文件的DTD文档位置,DTD是DocumentType Definition 的缩写,  即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性。 

 <!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

Question:如何再到DTD的声明?

Answer:在hibernate-core-5.2.0.Final.jar下org.hibernate包中,你可以找到相应的扩展名为.dtd的文件,如图

这里有hibernate-configuration的dtd还有hibernate-mapping的dtd,我们打开hibernate-configuration-3.0.dtd文件

3、<property name="dialect">

该标签用来指定数据库的类型,这里我们可以这样写<property name="hibernate.dialect"> 所有property标签的name属性都可以加上hibernate,也可以不加

 <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 指定数据库类型为Mysql -->
<property name="dialect">hibernate.dialect org.hibernate.dialect.OracleiDialect</property> <!-- 指定数据库类型为Oracle -->
<property name="dialect">hibernate.dialect org.hibernate.dialect.SQLServerDialect</property> <!-- 指定数据库类型为Sql Server -->

我们可以在下载的开发包中找到hibernate-release-5.2.0.Final\project\etc下面的hibernate.properties

 ## MySQL

 #hibernate.dialect org.hibernate.dialect.MySQLDialect
#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
#hibernate.connection.driver_class com.mysql.jdbc.Driver
#hibernate.connection.url jdbc:mysql:///test
#hibernate.connection.username gavin
#hibernate.connection.password ## Oracle #hibernate.dialect org.hibernate.dialect.Oracle8iDialect
#hibernate.dialect org.hibernate.dialect.Oracle9iDialect
#hibernate.dialect org.hibernate.dialect.Oracle10gDialect
#hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
#hibernate.connection.username ora
#hibernate.connection.password ora
#hibernate.connection.url jdbc:oracle:thin:@localhost:1521:orcl
#hibernate.connection.url jdbc:oracle:thin:@localhost:1522:XE

4、<property name="connection.driver_class">:配置数据库驱动

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

5、<property name="connection.url">:配置数据库的url

<property name="connection.url">jdbc:mysql:///test?characterEncoding=utf8</property>

6、<property name="connection.username">:配置数据库登录名

<property name="connection.username">root</property>

7、<property name="connection.password">:配置数据库登录密码

<property name="connection.password">123456</property>

8、<property name="hibernate.hbm2ddl.auto">

  该属性有4个值

  a、create-drop:表示在hebarinate初始化时创建表格,程序运行结束的时候会删除相应的表格,在实际项目中不用

  b、create:在hibernate初始化时会创建表格,在运行结束之后不删除表格,而是在下一次运行的时候如果有旧的先删掉再创建,没有旧的,直接创建

  c、update:加载hibernate自动更新数据库结构,如果没有表,则创建,如果有,且有更新,则直接更新,没有更新,则不变化

  d、校验映射文件和数据库中的表是不是能对应起来,不能对应报错,实际中常用

  总之请慎重使用此参数,没必要就不要随便用。

9、其它

 <!-- 允许显示sql语句 -->
<property name="show_sql">true</property>
<!-- 格式化sql语句 -->
<property name="format_sql">true</property>
<!-- 设置连接池大小 -->
<property name="connection.pool.size">20</property>
<!--jdbc.fetch_size是指Hibernate每次从数据库中取出并放到JDBC的Statement中的记录条数。FetchSize设的越大,读数据库的次数越少,速度越快,Fetch Size越小,读数据库的次数越多,速度越慢-->
<property name="jdbc.fetch_size">50</property>
<!--jdbc.batch_size是指Hibernate批量插入,删除和更新时每次操作的记录数。BatchSize越大,批量操作的向数据库发送Sql的次数越少,速度就越快,同样耗用内存就越大-->
<property name="jdbc.batch_size">23</property>
<!--connection.useUnicode连接数据库时是否使用Unicode编码-->
<property name="Connection.useUnicode">true</property>
<!--connection.characterEncoding连接数据库时数据的传输字符集编码方式-->
<propertynamepropertyname="connection.characterEncoding">gbk</property>

Hibernate 主配置文件详解的更多相关文章

  1. nginx官方源安装-主配置文件详解

    HTTP相关术语 PV : Page Visit 页面独立浏览量,查看日志生成条数可以看到PV数量. PV全称Page View,中文翻译即页面浏览.其具体的度量方法是从浏览器发出一个对网络服务器的请 ...

  2. hibernate框架配置文件详解

    1 orm元数据配置文件(映射文件) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hib ...

  3. Hibernate常用配置文件详解

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

  4. mybatis主配置文件详解

    mybatis主配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configur ...

  5. JAVA框架之Hibernate【配置文件详解】

    Hibernate配置文件主要功能是配置数据库连接和Hibernate运行时所需的各种属性,配置文件应该位于JAVA应用或者JAVA Web应用的类文件中,刚开始接触Hibernate的时候,感觉Hi ...

  6. vsftpd的主配置文件详解

    anonymous_enable=YES 允许匿名用户登录#local_enable=YES 允许本地用户登录#write_enable=YES 允许写权限#local_umask=022 ##ano ...

  7. nginx主配置文件详解

    #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_processes 8; #全局错误日志定义类型,[ debug | in ...

  8. 一、Nginx配置文件详解

    配置文件介绍 主要有两部分:分别是 main:主体部分 http{}:虚拟主机配置部分 配置指令主要以分号结尾:配置语法:directive value1 [value2 ....] 支持使用的变量 ...

  9. Hibernate配置文件详解

    Hibernate配置方式 Hibernate给人的感受是灵活的,要达到同一个目的,我们可以使用几种不同的办法.就拿Hibernate配置来说,常用的有如下三种方式,任选其一. 在 hibernate ...

随机推荐

  1. 谜题54:Null与Void

    下面仍然是经典的Hello World程序的另一个变种.那么,这个变种将打印什么呢? public class Null { public static void greet() { System.o ...

  2. Java中的对象池技术

    java中的对象池技术,是为了方便快捷地创建某些对象而出现的,当需要一个对象时,就可以从池中取一个出来(如果池中没有则创建一个),则在需要重复重复创建相等变量时节省了很多时间.对象池其实也就是一个内存 ...

  3. 监视scrollview是否滚动到底

    //监视scrollview是否滚动到底 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ [refreshHeaderViewegoRe ...

  4. java笔记之方法

    一.那么什么是方法呢? 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 二.方法的优点 ...

  5. [转]XML中元素(Element)与节点(Node)的区别

    前言: element是特殊的node 一段纯文本即text-node也是node 但不是element w3c的原话是 A node can be an element node, an attri ...

  6. C# 中的.pdb/ .vshost.exe/ .vshost.exe.manifest文件

    转自 C# 中的.pdb/ .vshost.exe/ .vshost.exe.manifest文件讨论 pdb文件: 英文全称:Program Database File 中文全称:程序数据库 文件 ...

  7. 解决delphi10.2.3 android tools闪退

    解决delphi10.2.3 android tools闪退 修改D:\Program Files (x86)\Embarcadero\Studio\19.0\PlatformSDKs\android ...

  8. 【Tomcat】Tomcat闪退的问题解决/Tomcat修改端口号无效

    一.  Tomcat闪退的问题解决 1.首先 确定JDK的环境变量配置正确 2.下载纯净的新的Tomcat 3.在bin\startup.bat文件中的第一行前面加入: SET JAVA_HOME = ...

  9. Struct2_使用Ajax调用Action方法并返回值

    一.Login.jsp 1.<head>引入jquery: <script type="text/javascript" src="http://aja ...

  10. HTTP 错误 404.0 - Not Found 您要找的资源已被删除、已更名或暂时不可用。

    现象:打开一个页面,一直报404异常,但是文件是存在的,打开同一目录下的其它文件都没问题,改文件名也不行,始终找不到原因 解决方案:404异常是一个幌子,实际异常是页面读取了null值,应该报空引用, ...