`

Hibernate3.6.2 配置文件

阅读更多

 

凡是框架,就避免不了配置文件( or 注解),而 Hibernate 的配置文件是需要我们非常细心的,如果 Hibernate 配置文件配置的很精确的话,对数据库的操作是很方便的。

Hibernate 中的配置主要分为两种,一种是包含了 Hibernate 与数据库的基本连接信息,在 Hibernate 工作的初始阶段,这些信息被先后加载到 Configuration SessionFactory 实例;另一种包含了 Hibernate 的基本映射信息,即项目中的每个类与其对应的数据库表之间的关联信息,在 Hibernate 工作的初始阶段,这些信息通过 Hibernate.cfg.xml mapping 节点被加载到 Configuration SessionFactory 实例。所以这两种配置文件信息包含了 Hibernate 的所有运行期间的参数。

一、 Hibernate 数据库配置文件:

实现包含了 Hibernate 与数据库的基本连接信息的配置方式有两种方式:

1、 使用 Hibernate.properties 文件作为配置文件;

2、 使用 Hibernate.cfg.xml 文件作为配置文件,一般都使用此方式居多;

1、 Hibenate.properties:

Hibernate 源码的 project 下的 etc 里有个 hibernate.properties 文件,该文件列出了 Hibernate 的所有属性,开发者只需要取消所需要配置段的注释即可快速配置 Hibernate 与数据库的连接。

Hibernate.properties 文件创建 Configuration 对象的方法:

Configuration cfg = new Configuration();// 实例化 Configuration 对象

cfg.addResource(“student.hbm.xml”);

cfg.addResource(“teacher.hbm.xml”);// 多次调用 Hibernate 里的映射文件

从上面我们也可以看出 hibernate.properties 文件只能配置 Hibernate 的一些属性,而对映射文件则需要代码手动添加,而如果项目比较大,类多,映射文件很多时,就显得比较繁琐,所以在实际开发中也不是很常用。

2、 Hibernate.cfg.xml

MySql 为例:

<?xml version="1.0" encoding="UTF-8"?>
<!--表明解析本XML文件的DTD文档位置,DTD是DocumentType Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性。hibernate.sourceforge.net/hibernate-configuration-3.0dtd可以在Hibernate软件包中的src\org\hibernate目录中找到此文件-->  
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <!--声明Hibernate配置文件的开始-->  
<hibernate-configuration>
<!--表明以下的配置是针对session-factory配置的,SessionFactory是  
Hibernate中的一个类,这个类主要负责保存HIbernate的配置信息,以及对Session的操作--> 
<session-factory>
<!--配置数据库的驱动程序,Hibernate在连接数据库时,需要用到数据库的驱动程序-->  
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 <!--设置数据库的连接url: jdbc:mysql://localhost:3306/db_springwebself,其中localhost表示mysql服务器名称,此处为本机,db_springwebself是数据库名-->   
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/db_springwebself</property>
<!--连接数据库是用户名-->  
        <property name="hibernate.connection.username">root</property>
    <!--连接数据库是密码-->  
        <property name="hibernate.connection.password">123</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 自动提交 -->
        <property name="hibernate.connection.autocommit">true</property>  
<!--是否在后台显示Hibernate用到的SQL语句,开发时设置为true,便于差错,程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句。项目部署后可以设置为false,提高运行效率-->              
<property name="show_sql">true</property>

<!--指定映射文件为“org/lxh/student/Student.hbm.xml”-->  
        <mapping resource="org/lxh/student/Student.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

 

说明:

1 、配置信息可以总结出, Hibernate.cfg.xml 配置文件是用来配置数据库连接信息的文件,并且指定 Hibernate 的映射文件;

2 、从上面可以看出 hibernate-configuration 是连接配置文件的根元素,它的内容可以配置多个 session-factory 子元素,使用 session-factory name 属性来区分,一般情况下一个即可,在连接配置文件中, session-factory property 子元素用来指定该工厂的属性值,其他如下:

hibernate.dialect :指定数据库名

hibernate.connection.pool_size :指定连接池的大小

hbm2dd.auto :根据需要是否自动创建数据库,其值有:

validate: sessionFactory 创建时,自动验证或者 schema 定义导入数据库。

create: 每次启动都 drop 掉原来的 schema ,创建新的。

create-drop: sessionFactory 明确关闭时, drop schema

update( 常用 ): 如果没有 schema 就创建,有就更新。

3 mapping 子元素是用来指定映射文件,需要注意的是 mapping resource 属性用来指定映射文件的路径,每级目录用“ / ”分开,而不是常用的“ . ”;

4 、如果有多个映射文件,就使用多个 mapping 元素

5 Oracle 驱动: oracle.jdbc.driver.OracleDriver

6 MSSQL 驱动: net.sourceforge.jtds.jdbc.Driver

7 DB2 驱动: com.ibm.db2.jdbc.app.DB2Driver

8 sybase 驱动: com.sybase.jdbc.SybDrive

二、 Hibernate 映射文件:

Hibernate 映射文件就是为系统中每一个类与其对应的数据库表之间的关联信息,一般这些配置文件一般命名为:类名 .hbm.xml 。在映射文件中,主要有两部分组成,一是类和属性与表和字段的对应关系,二是表(实体)之间的关联关系(重要);

这里主要先说一下映射文件的简单对应关系,关联关系将在下一篇里详细的说明。

 

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

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > 
<hibernate-mapping package="包名"> 
   <class name="类名" table="表名"> 
      <id name="主键在java类中的字段名" column="对应表中字段" type="类型 "> 
          <generator class="主键生成策略"/> 
      </id> 

         …… 
    </class> 
</hibernate-mapping>
<span xmlns="http://www.w3.org/1999/xhtml" style=""><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package=”com.iflytek.entity”>
    <class name="Student" table="tbl_student">
        <id name="id" column="id" type="string">
            <generator class="uuid"></generator>
        </id>
        <property name="name" column="name" type="string"></property>
        <property  name="cardId" column="cardId" type="string"></property>
        <property name="age" column="age" type="int"></property>
        <set name="courses" table="tbl_course" cascade="save-update">
            <key column="stu_id"></key>
            <many-to-many class="Course" column="course_id">
            </many-to-many>
        </set>
    </class>
</hibernate-mapping></span>

 

1 Hibernate-mapping 元素是所有 Hibernate 映射文件的根元素,这个根元素对所有的映射文件都相同;

2 Hibernate-mapping 元素上面是该 XML 映射文件的头部分,定义了该文件的 xml 版本和 DTD 声明,对所有 Hibernate3.x 的映射文件全部相同;

3 property 元素定义持久化类的普通属性,该持久化类有多少个普通属性,就需要有多少个 property 元素。其常用属性:

name :对应持久类的属性名

type :该属性的类型

column :该属性都在数据库中的列名

length :该属性的最大长度

not-null :该属性是否可以为空

lazy :加载时该属性是否为延迟加载

unique :该属性在数据库中是否是惟一的;

当然上面有的节点上存在很多可选属性,更加详细的信息我们可以在实际应用中查阅官方文档;

 

 

 

 

 

分享到:
评论

相关推荐

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    3.1 创建Hibernate的配置文件 47 3.2 创建持久化类 48 3.3 创建数据库Schema 51 3.4 创建对象-关系映射文件 52 3.4.1 映射文件的文档类型定义(DTD) 52 3.4.2 把Customer持久化类映射到CUSTOMERS表 54 3.5 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    精通Hibernate:对象持久化技术第二版part3

    3.1 创建Hibernate的配置文件 47 3.2 创建持久化类 48 3.3 创建数据库Schema 51 3.4 创建对象-关系映射文件 52 3.4.1 映射文件的文档类型定义(DTD) 52 3.4.2 把Customer持久化类映射到CUSTOMERS表 54 3.5 ...

    低清版 大型门户网站是这样炼成的.pdf

    4.2.4 hibernate的映射配置文件 201 4.2.5 体验hibernate(会员管理) 203 4.3 hibernate的映射机制 212 4.3.1 hibernate的基本映射数据类型 212 4.3.2 hibernate的主键映射 218 4.3.3 hibernate的实体映射 228...

    mybatis学习笔记

    3 SqlMapConfig.xml配置文件 24 3.1 配置内容 24 3.2 properties(属性) 24 3.3 settings(配置) 25 3.4 typeAliases(类型别名) 26 3.4.1 mybatis支持别名: 26 3.4.2 自定义别名: 27 3.5 typeHandlers(类型...

    JAVA程序开发大全---上半部分

    9.2.5 使用Hibernate配置文件编辑器 141 9.2.6 使用反向工程生成持久化对象、映射文件和DAO类 143 9.2.7 使用Hibernate功能 151 9.3 MyEclipse中Hibernate框架的高级操作 152 9.3.1 在Hibernate反向工程中定制映射...

    spring.doc

    2.2 Spring配置文件 7 2.3 Spring API 8 3 Spring基本功能详解 8 3.1 SpringIOC 8 3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认...

    JAVA项目开发全程实录(含电子书和所有源代码)

    3.6.1 编写Hibernate配置文件 114 3.6.2 编写Hibernate持久化类和映射文件 115 3.6.3 编写通过Hibernate操作持久化对象的 常用方法 116 3.6.4 创建用于特殊效果的部门树对话框 117 3.6.5 创建通过部门树选取员工的...

    iBATIS实战

    3.6.1 SQL Map配置文件 54 3.6.2 properties元素 55 3.6.3 settings元素 56 3.6.4 typeAlias元素 58 3.6.5 transactionManager元素 60 3.6.6 typeHandler元素 61 3.6.7 sqlMap元素 61 3.7 小结 62 第4章 使用已映射...

    spring in action英文版

     3.6.2 DefaultAdvisorAutoProxyCreator  3.6.3 元数据自动代理  3.7 小结 第二部分 Spring在业务层的应用  第4章 征服数据库  4.1 学习Spring的DAO理念  4.1.1 理解Spring的DataAccessException...

    Spring in Action(第2版)中文版

    3.6.2脚本化bean 3.6.3注入脚本化bean的属性 3.6.4刷新脚本化bean 3.6.5编写内嵌的脚本化bean 3.7小结 第4章通知bean 4.1aop简介 4.1.1定义aop术语 4.1.2spring对aop的支持 4.2创建典型的spring切面 4.2.1...

    Spring in Action(第二版 中文高清版).part2

    3.6.2 脚本化Bean 3.6.3 注入脚本化Bean的属性 3.6.4 刷新脚本化Bean 3.6.5 编写内嵌的脚本化Bean 3.7 小结 第4章 通知Bean 4.1 AOP简介 4.1.1 定义AOP术语 4.1.2 Spring对AOP的支持 4.2 创建典型的...

    Spring in Action(第二版 中文高清版).part1

    3.6.2 脚本化Bean 3.6.3 注入脚本化Bean的属性 3.6.4 刷新脚本化Bean 3.6.5 编写内嵌的脚本化Bean 3.7 小结 第4章 通知Bean 4.1 AOP简介 4.1.1 定义AOP术语 4.1.2 Spring对AOP的支持 4.2 创建典型的...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    8.5.1 Struts2的配置文件类型 8.5.2 Struts2的包配置 8.5.3 名称空间配置 8.5.4 Action相关配置 8.5.5 通配符实现简化配置 8.5.6 返回结果的配置 8.6 Struts2的开发模式 8.6.1 实现与ServletAPI的交互 86.2 域模型...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    2.4.2 JSF配置文件结构 68 2.5 托管Bean和表达式语言 69 2.5.1 托管Bean的属性和表达式语言 69 2.5.2 托管Bean的方法 78 2.5.3 托管Bean的分类 80 2.5.4 初始化托管Bean的属性 85 2.5.5 通过FacesContext访问应用...

    Grails权威指南

     3.6.2 日志记录(logging)和环境  3.7 grails命令行工具  3.7.1 在不同的端口上运行grails应用程序  3.7.2 打包war存档文件(warcarchive)  3.8 使用grails控制台(console)及命令解释程序...

Global site tag (gtag.js) - Google Analytics