Hibernate 如何编写一个映射文件呢?
下文将通过示例的方式讲述一个Hibernate映射文件的编写方法,如下所示:
市面上常见的映射文件生成工具有:
XDoclet
Middlegen
AndroMDA
下面将通过具体的示例讲述其编写方法,如下所示:
1.映射文件需使用 <classname>.hbm.xml 文件名保存 ,如: user.hbm.xml
2.标签说明:
class标签用于 其中的name属性表示 Java类名称,table属性值表示数据库表名称
meta标签是一个可选元素,用于修饰类
id标签通常用于表示主键
generator标签:可以设置 native 使 Hibernate 可以使用 identity, sequence 或 hilo 算法根据底层数据库的情况来创建主键
property标签用于表示Java中类的属性同数据库列的匹配关系
name属性值:用于设置类的属性名
column:用于定义数据库中表的列名称
type:用于定义数据库表中的列名称
映射文件:
在Hibernate中,一个对象同关系的映射关系通常放入到一个XML文件中,并且通过这个映射关系将类同数据库的表之间建立起相应的关联关系。市面上常见的映射文件生成工具有:
XDoclet
Middlegen
AndroMDA
下面将通过具体的示例讲述其编写方法,如下所示:
持久化类
public class User { private int id; private String name; private int salary; public User () { name=null; salary =0; } public User (String name, int salary) { this.name = name; this.salary = salary; } public int getId() { return id; } public void setId( int id ) { this.id = id; } public String getname() { return name; } public void setname( String name ) { this.name = name; } public int getSalary() { return salary; } public void setSalary( int salary ) { this.salary = salary; } }数据表信息
create table tbUser ( id INT NOT NULL auto_increment, name nVARCHAR(20) default NULL salary INT default NULL, PRIMARY KEY (id) );映射文件
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="User" table="tbUser"> <meta attribute="class-description"> This class contains the User detail. </meta> <id name="id" type="int" column="id"> <generator class="native"/> </id> <property name="name" column=" name" type="string"/> <property name="salary" column="salary" type="int"/> </class> </hibernate-mapping>映射文件注意事项:
1.映射文件需使用 <classname>.hbm.xml 文件名保存 ,如: user.hbm.xml
2.标签说明:
class标签用于 其中的name属性表示 Java类名称,table属性值表示数据库表名称
meta标签是一个可选元素,用于修饰类
id标签通常用于表示主键
generator标签:可以设置 native 使 Hibernate 可以使用 identity, sequence 或 hilo 算法根据底层数据库的情况来创建主键
property标签用于表示Java中类的属性同数据库列的匹配关系
name属性值:用于设置类的属性名
column:用于定义数据库中表的列名称
type:用于定义数据库表中的列名称
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。