`

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-distribution-3.6.2.Final-dist

    1. 配置:学习如何在项目中引入Hibernate,编写`hibernate.cfg.xml`配置文件,设置数据库连接、方言、缓存等。 2. 映射:理解XML配置文件(`.hbm.xml`)或注解(如`@Entity`、`@Table`等)的方式,实现对象与数据库...

    hibernate-distribution-3.6.2 API及jar包

    在实际应用中,开发者通常会结合`hibernate3.jar`和`hibernate-testing.jar`来搭建开发环境,然后根据`hibernate-reference.pdf`文档的指导,配置Hibernate的属性文件(如hibernate.cfg.xml),定义实体类和映射文件...

    hibernate3.6基本jar包

    在Hibernate中,它用于处理Hibernate的配置文件,如hibernate.cfg.xml,以及映射文件(hbm.xml),这些文件定义了对象与数据库表之间的映射关系。 6. **slf4j-api-1.6.1.jar**:Simple Logging Facade for Java(SLF4...

    hibernate3.2+mysql+log4j

    2. **配置Hibernate**:编写hibernate.cfg.xml配置文件,指定数据库连接信息、方言、缓存策略等。 3. **映射对象**:创建实体类并使用注解或XML文件定义其与数据库表的映射关系。 4. **配置log4j**:根据需求调整log...

    hibernate-distribution-3.6.2.Final-dist jar包

    2. **配置文件(hibernate.cfg.xml)**:在开发中,我们需要配置一个hibernate.cfg.xml文件,用来指定数据库连接参数,包括数据库URL、用户名、密码等,以及定义Hibernate的全局设置。 3. **实体类(Entity)**:...

    Hibernate Core 3.3.2.GA API (html官方英文版)

    在Hibernate中,这种映射通过配置文件(hbm.xml)或注解完成。 2. **Entity(实体)** 在Hibernate中,实体对应于数据库中的表,一个Java类可以被声明为实体,通过@Entity注解。实体类的实例是数据库中的一条记录...

    Hibernate4.2Jar官方最新jar包

    9. **DOM4J** (`dom4j-1.6.1.jar`): DOM4J是一个Java的XML处理库,Hibernate使用它来处理XML配置文件,如Hibernate的映射文件(hbm.xml)。 10. **Avro** (`avro-1.6.3.jar`): Avro是Apache的一个数据序列化系统,...

    精通 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 ...

    spring4.2+hibernate4.2+struts2.3.29整合所需jar包

    此外,还需要编写相应的配置文件(如struts.xml、spring.xml、hibernate.cfg.xml),以定义应用的行为和数据访问规则。 整合SSH框架能够提供一个灵活、可扩展的架构,便于代码维护和模块化。通过Spring的依赖注入和...

    精通 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 ...

    Struts2.3.8整合Hibernate4.2,Spring3.2lucene 3 6 2 SSH整合1.0版

    在这个1.0版的整合中,可能已经包含了相关的配置文件、示例代码、数据库脚本以及运行说明,帮助开发者快速理解和部署SSH环境。通过学习和实践这个整合包,开发者可以深入理解如何将这些框架有效地协同工作,提升自己...

    低清版 大型门户网站是这样炼成的.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...

    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反向工程中定制映射...

    通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合的例子

    例如,使用`@RunWith(SpringRunner.class)`注解标记测试类,使用`@ContextConfiguration`注解指定配置文件路径,Spring会自动加载上下文并注入依赖。 接着,对于Struts2的Action类,通常我们需要模拟Service层的...

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

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

Global site tag (gtag.js) - Google Analytics