<?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>
<class name="com.pojo.Department" table="Department" catalog="project">
<id name="deptNo" type="java.lang.Byte" column="deptNo">
<generator class="assigned"></generator>
</id>
<property name="deptName" type="java.lang.String" column="deptName"></property>
<property name="location" type="java.lang.String" column="location"></property>
</class>
</hibernate-mapping>
class:定义一个持久化类的映射信息。常用属性如下
1.name:表示持久化类的全限定名
2.table:表示持久化类对于的数据库表名
3.catalog:表示数据库名
id:表示持久化类的OID和表的主键的映射。常用属性如下。
1.name :持久化类属性的名称,和属性的访问器相匹配
2.type : 持久化类属性的类型。
3.column: 表示持久化类属性对应的数据库表字段的名称,也可在子元素column中指定。
generator:id元素的子元素,用于指定生成策略。常用属性及子元素
class:属性用来指定具体主键的生成策略
param:元素用来传递参数
常用主键生成策略
- assigned:主键由应用程序负责生成,无须Hibernate参与。这是没有指定<generator>元素时的默认生成策略。
- increment:对类型为long,short或int的主键,以自动增长的方式生成主键的值。主键按数值顺序递增,增量是1。
- identity:对SQL Server,DB2,MySQL等支持标识列的数据库,可使用该主键生成策略生成自动增长主键,但是要在数据库中将相应的主键字段设置为标识列。
- sequence:对Oracle,DB2等支持序列的数据库,可使用该生成策略生成自动增长的主键。
- native:由Hibernate根据底层数据库自行判断采用何种主键生成策略,即由使用的数据库生成主键的值。
property:定义持久化类中的属性和数据库表中的字段的对应关系。常用属性
name:表示持久化类属性的名称,和属性的访问器相匹配
type:表示持久化类属性的类型
column:表示持久化类属性对应的数据库表的名称,也可在子元素column中指定。
column元素:用于指定其父元素代表的持久化类属性所对应的数据库表中的字段。常用属性如下
name:表示字段的名称
length:表示字段的长度
not-null:设定是否不能为null,设置为true表示不能是null