`
maomaozgc
  • 浏览: 333835 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate配置文件

阅读更多
Hibernate配置文件

通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(.hbm.xml)把java对象或持久化对象(Persistent Object,PO)映射到数据库中的数据表,
然后通过操作PO,对数据表中的数据进行增,删,改,查等操作.

Hibernate配置文件主要用来配置数据库连接参数,例如数据库的驱动程序URL,用户名,密码等。
    两种格式:hibernate.properties和hibernate.cfg.xml。
    一般情况下,hibernate.cfg.xml是Hibernate的默认配置文件。


(1) hibernate.properties:



在Hibernate-3.1的etc目录下有一个hibernate.properties模板。该配置模板文件定义了连接各种数据库所需要的参数。 需要使用hibernate.properties时,修改该模板即可。该模板文件中每一个配置项前面的“#”是注释符号。


(2)hibernate.cfg.xml:

除了要定义Hibernate的各项属性,还要定义程序中用的映射文件(xxx.hbm.xml)。一般情况下是hibernate的默认配置文件。



hibernate.cfg.xml配置文件

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

<!DOCTYPE hibernate-configuration PUBLIC

          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">



<!-- Generated by MyEclipse Hibernate Tools.                   -->

<hibernate-configuration>

    <session-factory>

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

        <property name="connection.url">

            jdbc:sqlserver://localhost:1433;databaseName=hbDB

        </property>

        <property name="dialect">

            org.hibernate.dialect.SQLServerDialect

        </property>

        <property name="myeclipse.connection.profile">hbDB</property>

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

        <property name="connection.driver_class">

            com.microsoft.sqlserver.jdbc.SQLServerDriver

        </property>

        <property name="show_sql">true</ property >

<property key="hibernate.connection.autocommit">false</property >

        <mapping resource="cn/Customers.hbm.xml" />



    </session-factory>



</hibernate-configuration>



hibernate.cfg.xml配置文件属性

属性
说明

connection.username
指定连接数据库的用户名

connection.url
指定连接数据库的URL

dialect
用于配置hibernate使用的不同的数据类型。 如Oracle、DB2、MS SQL Server、MySQL等。

myeclipse.connection.profile
数据库的配置文件

connection.password
指定连接数据库的密码

connection.driver_class
指定数据库的驱动程序

show_sql
若为true,表示程序在运行时,在控制台输出SQL语句。


 

mapping
数据库表和实体的映射信息要在另外的映射文件中定义,但要在配置文件中声明。




实体类

       Customers实体类要实现implemetns java.io.Serializable接口。

package cn;



public class Customers implements java.io.Serializable {

    private Integer id;

    private String name;

    private Integer age;

    public Integer getAge() {

        return age;

    }

    public void setAge(Integer age) {

        this.age = age;

    }

    public Integer getId() {

        return id;

    }

    public void setId(Integer id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

   

}



映射文件

另外,还要告诉Hibernate实体类Customers映射到数据库的哪个表,以及哪个属性对应数据库中的哪个字段。

Customers.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">

<!--

    Mapping file autogenerated by MyEclipse Persistence Tools

-->

<hibernate-mapping>

    <class name="cn.Customers" table="Customers" schema="dbo" catalog="hbDB">

        <id name="id" type="java.lang.Integer">

            <column name="ID" />

            <generator class="identity" />

        </id>

        <property name="name" type="java.lang.String">

            <column name="Name" length="20" not-null="true" />

        </property>

        <property name="age" type="java.lang.Integer">

            <column name="Age" not-null="true" />

        </property>

    </class>

</hibernate-mapping>



1 <class name="cn.Customers" table="Customers" schema="dbo" catalog="hbDB"通信dynamic-update="false" dynamic-insert="false" mutable="true"></class>

每一个<class>节点配置一个实体类的映射信息。

(1)        name属性:对应指定持久化实体类:Customers。

(2)        table属性:对应数据库表的名字。

(3)        schema属性:

(4)        catalog属性:

(5)dynamic-update:若为false,表示当保存一个实例时,会动态生成update语句,只有该实例中的字段取值变化,才会把它包含到insert语句中。默认值为true。

(6)dynamic-insert:若为false,表示当插入一个实例时,会动态生成inset语句,只有该实例中的字段取值不为null时,才会把它包含到insert语句中。默认值为true。

(7)mutable:若为false,等价于所有的<property>元素的update属性为false,表示整个实例不能被更新。默认为true。

2  <id name="id" type="java.lang.Integer">

            <column name="ID" />

            <generator class="identity" />

</id>

<id>节点用于定义实体的标识属性(对应数据库表的主键)

(1)name属性:对应实体类的属性。

(2)type属性:指定hibernate映射的数据类型。对应Java数据类型。

(3)column属性:通过name属性指定其对应的数据库表的主键。

(4)generator属性:指定主键的生成策略。





3          <property name="name" type="java.lang.String" update="true" insert="true">

<column name="Name" length="20" not-null="true" />

</property>

与<id>节点类似,但不能包括<generator>节点。

(1)name属性:指定持久化类的属性。

(2)type属性:指定hibernate映射的数据类型。对应Java数据类型。

(3)column属性:通过name属性指定其对应的数据库表的字段名。

(4)length属性:通过name属性指定其对应的数据库表的字段名的长度。

(5)not-null属性:通过name属性指定其对应的数据库表的字段名是否为空。

(6)update:若为false则在更新数据时,不会更新该字段。默认为true.即更新。

(7)insert:若为false则在插入数据时,不会插入该字段。默认为true.即插入。

<column>元素的属性

属  性
说   明

Name
指定持久化类的属性。

length
指定段长度

not-null
指明字段是否为空。默认为false。

unique
指明字段是否具有唯一索引。默认为false。

unique-key
为多个字段设定惟一约束

foreign-key
指明一个外键的名字,它是为关联生成的。

sql-type
设定字段的SQL类型。

check
设定SQL检查约束。






在做唯一外键关联的时候都要用到property-ref="readTypeName"

在many-to-one加个属性,这个属性默认是指向主键的,把它改为主表的关联字段


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pingkongyouyuan/archive/2009/03/08/3970043.aspx
分享到:
评论

相关推荐

    hibernate配置文件详解

    Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...

    hibernate配置文件

    hibernate配置文件 里面提供了连接数据库 数据库使用的方言 是否打印SQL语句 sql语句的格式 以及对象-关系映射文件的地址等

    Hibernate配置文件hibernate.cfg.xml中配置信息详解

    Hibernate配置文件hibernate.cfg.xml中配置信息详解!

    Hibernate配置文件加载后修改配置信息

    ### Hibernate配置文件加载后修改配置信息 在Java开发过程中,特别是在使用ORM框架如Hibernate时,开发者经常需要对配置文件中的数据库连接信息进行动态修改或加密处理。本文将详细介绍如何利用反射机制来修改已经...

    用myeclipse自动生成hibernate配置文件

    MyEclipse作为一款强大的集成开发环境,提供了自动生成Hibernate配置文件的功能,帮助开发者快速构建项目。以下是使用MyEclipse自动生成Hibernate配置文件的详细步骤: 1. **创建数据库表**: 在开始之前,需要先...

    eclipse 逆向生成hibernate配置文件

    逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件

    hibernate--5.Hibernate配置文件详解

    标题"hibernate--5.Hibernate配置文件详解"暗示我们将探讨的是Hibernate 5版本的配置细节。这个版本引入了一些新特性和改进,同时也保持了对前一版本的兼容性。配置文件是Hibernate的核心部分,它定义了与数据库的...

    代码自动生成工具 hibernate配置文件工具 MagicalTools

    《代码自动生成工具 Hibernate配置文件工具 MagicalTools 深度解析》 在现代软件开发过程中,提高效率和减少重复劳动是至关重要的。为此,开发者们不断寻求自动化工具的帮助,以简化繁琐的任务,如代码编写、配置...

    struts2+spring+hibernate 配置文件

    struts2+spring+hibernate 配置文件struts2+spring+hibernate 配置文件

    ssh整合带hibernate配置文件

    在这个场景下,"ssh整合带hibernate配置文件"的标题表明我们要讨论如何在SSH架构中配置Hibernate,特别是在Spring框架内进行事务管理。 首先,让我们了解SSH框架的核心组件: 1. **Spring**:这是一个全面的Java...

    Myeclipse自动生成Hibernate配置文件及实体类映射ORM

    Myeclipse 自动生成 Hibernate 配置文件及实体类映射 ORM 配置文件 Myeclipse 是一个功能强大的集成开发环境(IDE),它提供了许多实用的功能来简化软件开发过程。在这个示例中,我们将展示如何使用 Myeclipse 自动...

    hibernate--5.Hibernate配置文件详解-2

    标题"hibernate--5.Hibernate配置文件详解-2"暗示我们将继续上一节的内容,进一步深入理解Hibernate配置文件的各个方面。通常,Hibernate的配置文件以`hibernate.cfg.xml`的形式存在,它是项目初始化和连接数据库的...

    hibernate配置文件包

    这是最新的hibernate的下载和安装包。hibernate配置文件主要是用于配置数据库连接、事务管理,以及指定hibernate本省的配置信息和hibernate的映射文件信息。

    hibernate 配置文件JAR包

    下面我们将深入探讨Hibernate配置文件JAR包中的关键知识点。 1. **hibernate.cfg.xml**:这是Hibernate的核心配置文件,包含了数据库连接参数、事务管理、缓存配置等信息。例如,`driver_class`指定数据库驱动,`...

    hibernate配置文件工具

    1.自动生成hibernate配置文件 和 javaBean,以及HTML表单文件; 2.支持读取数据库表和字段的中文注释信息; 3.可以选择数据库; 4.可以选择表,hibernate 主键策略; 5.可以设置生成的 javaBean 的 package 路径...

    给hibernate配置文件加密解密的方案

    Hibernate 配置文件加密解密方案 在本文中,我们将讨论如何在 Hibernate 配置文件中对数据库密码进行加密和解密,以保护数据的安全。该方案通过使用 Java 的 Cipher 类和 DES 对称加密算法来实现加密和解密操作。 ...

Global site tag (gtag.js) - Google Analytics