在Hibernate中,映射文件通常以“hbm.xml”作为后缀。位置是在实体包下,是实体类到数据库表的一个映射信息

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

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

<hibernate-mapping package="cn.happy.entity">
    <class name="Student" table="Student">
        <id name="id" column="id">
            <generator class="native"></generator>
        </id>
        <property name="name"  column="name"/>
            
    </class>
</hibernate-mapping>   

class : 定义一个持久化类的映射信息:

  name :表示持久化类的全限定名,也就是实体类的名称

  table :表示持久化类映射到数据库的表名

id : 表示持久化类的OID和表主键的映射

  name :表示持久化类的属性的名称,和属性的访问器相匹配。

  column :表示持久化类属性对应数据库表中的字段名称。

      type :持久化类属性的类型,可以不写。

  generator :ID元素的子元素,用于生成主键的策略。

    class :用来指定具体的生成策略

    param :用来专递参数

 

常用的主键生成策略:

(1)increment :对类型为 long、short 或 int 的主键,以自动增长的方式生成主键的值 。主键按数值顺序递增,增量为1。

(2)identity : 对如SQL Server、DB2、MySQL 等支持标识列的数据库,可使用该主键生成策略生成自动增长主键,但要在数据库中将该主键设置为标识列。

(3)sequence :对如Oracle、DB2 等支持序列的数据库,可以使用该主键生成策略生成自动增长主键,通过子元素param 传入数据库中序列的名称。

(4)native : 由 HIbernate 根据底层数据库自行判断采用何种主键生成策略,即由使用的数据库生成主键的值。

(5)assigned :主键由应用程序负责生成,无需Hibernate 参与。

 

property : 定义持久化类中属性和数据库中的表的字段的对应关系。

  name : 表示持久化类属性的名称,和属性的访问器相匹配。

  type : 表示持久化类属性的类型。

  column : 表示持久化类属性对应的数据库表字段的名称,也可以在子元素column中指定。

  column元素: 用于指定其父元素代表的持久化类属性所对应的数据库表中的字段。

    name : 表示字段的名称

    length : 表示字段长度

    not-null :设定是否可以为null,值为true表示不能为null。

  

 

 posted on 2017-03-24 18:59  【邵江】  阅读(200)  评论(0编辑  收藏  举报