27.6生成实体类和映射文件
使用Hibemate的反转工程,可以直接从数据库表生成相应的实体类和映射文件。具体
步骤如下所示。
切换到数据库透视图,在前面创建的数据库连接信息名称“restrant”上单击鼠标
右键,从弹出的快捷菜单中选择Openconnection命令。依次打开节点restrant一Connected
torestrant一restrant一TABLE,展开数据库restrant的数据表列表,如图27-6所示。
使用Hibemate的反转工程,可以直接从数据库表生成相应的实体类和映射文件。具体
步骤如下所示。
切换到数据库透视图,在前面创建的数据库连接信息名称“restrant”上单击鼠标
右键,从弹出的快捷菜单中选择Openconnection命令。依次打开节点restrant一Connected
torestrant一restrant一TABLE,展开数据库restrant的数据表列表,如图27-6所示。
(2)在图27-6中,选中restrant数据库的所有表,并在选中的同时单击鼠标右键,在弹
出的快捷菜单中选择HibemateReverseEngineering命令。使用MyEclipse反转工程同时生成
数据表admin、meal、mealseries、orderdts、orders和users对应的实体类和映射文件。
通过Hibemate反转工程配置的关联映射基本上可以满足开发的需要,但需要进行细微
的修改。
实体类文件Admin扣va如下所示:
package com. Restrant. Entityi
public class Admin implements java. Io. Serializable
出的快捷菜单中选择HibemateReverseEngineering命令。使用MyEclipse反转工程同时生成
数据表admin、meal、mealseries、orderdts、orders和users对应的实体类和映射文件。
通过Hibemate反转工程配置的关联映射基本上可以满足开发的需要,但需要进行细微
的修改。
实体类文件Admin扣va如下所示:
package com. Restrant. Entityi
public class Admin implements java. Io. Serializable
private Integer id ;
private String loginName ;
private String loginpwd ;
//省略了属性的get和set方法
映射文件Admin.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>
<class name-"com. Restrant. Entity. Admin"table=" admin"
catalog."Restrant">
<id name."Id"type."j ava. Iang. Integer">
<column ndme="Id"/ >
<generator class-"native"><lgenerator>
</id>
<property name="loginName"type."j ava. Iang. String">
<column name-"LoginName"length="20"/ >
</property>
<property name-"loginpwd"type."j ava. Iang. String">
<column name="Loginpwdn length="20"/ >
</property>
</class>
. </hibernate-mapping>
private String loginName ;
private String loginpwd ;
//省略了属性的get和set方法
映射文件Admin.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>
<class name-"com. Restrant. Entity. Admin"table=" admin"
catalog."Restrant">
<id name."Id"type."j ava. Iang. Integer">
<column ndme="Id"/ >
<generator class-"native"><lgenerator>
</id>
<property name="loginName"type."j ava. Iang. String">
<column name-"LoginName"length="20"/ >
</property>
<property name-"loginpwd"type."j ava. Iang. String">
<column name="Loginpwdn length="20"/ >
</property>
</class>
. </hibernate-mapping>
实体类文件Users扣va如下所示:
package com. Restrant. Entityi'
-import j ava. uti 1. Hashset!
., import
'Public
j ava. util. Setp
class Users implements. Java : io. Serializable
private Integer idi
private String loginName ;
private String login'Pwdi,
private-String trueNamei.-" · :"'"
private Stri;ng emaili
private String phonei
private. String address i
private Set.', or'derses = new Hashset ( · O ) i
/省略了属性的get和
set方法
修改后的映射文件Users.hbm.xml如下所示:
. k?, ?anJ. version."1. 0 · . Enodingie "btf-8"?>
! DOCTYPE
hibernate-nappi. Ng,, PUBLIC
ll. :// Hibernate/Hbernate Mapping
DTD 3. 0// EN"
: thttp : / /www. hj. bernate. org/dtd/hlbernate-map
<hibernate-mapplng>
<class name =‘com.restrant.entity.user’ table=‘users’
package com. Restrant. Entityi'
-import j ava. uti 1. Hashset!
., import
'Public
j ava. util. Setp
class Users implements. Java : io. Serializable
private Integer idi
private String loginName ;
private String login'Pwdi,
private-String trueNamei.-" · :"'"
private Stri;ng emaili
private String phonei
private. String address i
private Set.', or'derses = new Hashset ( · O ) i
/省略了属性的get和
set方法
修改后的映射文件Users.hbm.xml如下所示:
. k?, ?anJ. version."1. 0 · . Enodingie "btf-8"?>
! DOCTYPE
hibernate-nappi. Ng,, PUBLIC
ll. :// Hibernate/Hbernate Mapping
DTD 3. 0// EN"
: thttp : / /www. hj. bernate. org/dtd/hlbernate-map
<hibernate-mapplng>
<class name =‘com.restrant.entity.user’ table=‘users’
catalog="Restrant">
< : id name-"id" type=“java.lang.Integer”>
<column name=“id”/>
<generator class-"native"></generator>
</id>
/此处省略了6个〈property〉标记
<set name-"orderses"inverse-"true"lazy-"false">
<key>
<column name-"Userld"/ >
</key>
<one-to-mari. class."com. Restrant. Entity. Orders"
</set>
</class>
</hibernate.-; tia
实体类文件Mealseries扣va如下所示:
package
Coril. Retrait i · en · tity ; · : :"-':, W, 3'li : <
import j ava. util. Hashseti
'import j ava. util. Set i;
Public class Mealseries implements java. Io. Serializable
private Integer seriesld ;
private String seriesNamei
private Set meals-new Hashset ( 0) ;
//省略了属性的get和set方法
}
< : id name-"id" type=“java.lang.Integer”>
<column name=“id”/>
<generator class-"native"></generator>
</id>
/此处省略了6个〈property〉标记
<set name-"orderses"inverse-"true"lazy-"false">
<key>
<column name-"Userld"/ >
</key>
<one-to-mari. class."com. Restrant. Entity. Orders"
</set>
</class>
</hibernate.-; tia
实体类文件Mealseries扣va如下所示:
package
Coril. Retrait i · en · tity ; · : :"-':, W, 3'li : <
import j ava. util. Hashseti
'import j ava. util. Set i;
Public class Mealseries implements java. Io. Serializable
private Integer seriesld ;
private String seriesNamei
private Set meals-new Hashset ( 0) ;
//省略了属性的get和set方法
}