不一定要用 MyEclipse 的 Hibernate 框架生成数据库表的映射文件,其实很简单:
在 Eclipse 环境中,新建一个项目并添加 Hibernate 框架.
假设有两个表,分别是 MainClass 和 SubClass ,下面是两个表的表结构:(使用 MySQL 数据库)
Create
table
MainClass(
--
ID
MID
int
AUTO_INCREMENT
primary
key
,
--
main class name
MClsName
varchar
(
20
)
not
null
)ENGINE
=
MyISAM
DEFAULT
CHARSET
=
utf8;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Create
table
SubClass(
--
sub class ID
SID
int
AUTO_INCREMENT
primary
key
,
--
sub class name
SClsName
varchar
(
20
)
not
null
,
--
main class ID (外键)
MID
int
not
null
)ENGINE
=
MyISAM
DEFAULT
CHARSET
=
utf8;
现在来创建 MainClass 的类 MainClass.java,代码如下:
public
class
MainClass
...
{
private int mainClsId;
private String mainClsName;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// mainClsId Getter and Setter
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public int getMainClsId() ... {
return mainClsId;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void setMainClsId( int mainClsId) ... {
this .mainClsId = mainClsId;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// mainClsName Getter and Setter
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public String getMainClsName() ... {
return mainClsId;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void setMainClsName(String mainClsName) ... {
this .mainClsName = mainClsName;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
SubClass.java,代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
public
class
SubClass
...
{
private int subClsId;
private String subClsName;
private int mainClsId;
private MainClass mainClass;
// mainClass Getter and Setter
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public MainClass getMainClass() ... {
return mainClass;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void setMainClass(MainClass mainClass) ... {
this .mainClass = mainClass;
}
// mainClsId Getter and Setter
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public int getMainClsId() ... {
return mainClsId;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void setMainClsId( int mainClsId) ... {
this .mainClsId = mainClsId;
}
// subClsId Getter and Setter
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public int getSubClsId() ... {
return subClsId;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void setSubClsId( int subClsId) ... {
this .subClsId = subClsId;
}
// subClsName Getter and Setter
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public String getSubClsName() ... {
return subClsName;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void setSubClsName(String subClsName) ... {
this .subClsName = subClsName;
}
}
接着就是写 映射文件了,
MainClass.java 的映射文件 MainClass.hbm.xml
<?
xml version="1.0"
?>
<!
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 - Hibernate Tools
-->
<
hibernate-mapping
>
<
class
name
="com.demo.model.MainClass"
table
="MainClass"
catalog
="test"
>
<
id
name
="mainClsId"
type
="integer"
>
<!--
name 是 MainClass.java 中的 mainClsId 属性
-->
<
column
name
="MID"
/>
<!--
name 是 MainClass 表中对应的列名
-->
<
generator
class
="native"
/>
</
id
>
<
property
name
="mainClsName"
type
="string"
>
<
column
name
="MClsName"
length
="20"
not-null
="true"
/>
</
property
>
</
class
>
</
hibernate-mapping
>
SubClass.java 的映射文件 SubClass.hbm.xml
<?
xml version="1.0"
?>
<!
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 - Hibernate Tools
-->
<
hibernate-mapping
>
<
class
name
="com.demo.model.SubClass"
table
="SubClass"
catalog
="test"
>
<
id
name
="subClsId"
type
="integer"
>
<!--
name 是 SubClass.java 中的 subClsId 属性
-->
<
column
name
="SID"
/>
<!--
name 是 SubClass 表中对应的列名
-->
<
generator
class
="native"
/>
</
id
>
<
property
name
="subClsName"
type
="string"
>
<
column
name
="SClsName"
length
="20"
not-null
="true"
/>
</
property
>
<!--
这里很重要 ,作用是声明这段是数据库表中的外键
-->
<
property
name
="mainClsId"
column
="MID"
/>
<!--
这里的 column ,应该对应声明 外键的 name ,即 mainClsId ,而 name="mainClass" 就是 SubClass 里的一个属性
-->
<
many-to-one
name
="mainClass"
column
="mainClsId"
class
="com.demo.model.MainClass"
lazy
="false"
not-found
="ignore"
cascade
="none"
insert
="false"
update
="false"
/>
</
class
>
</
hibernate-mapping
>
好..最后一步就是在 hibenate 的配置文件中加上这两个 映射文件 地址就可以了
<
mapping
resource
="com/demo/model/MainClass.hbm.xml"
></
mapping
>
<
mapping
resource
="com/demo/model/SubClass.hbm.xml"
></
mapping
>
大功告成~~~~ :)
来源:http://www.fish888.com/hibernate-mapping-t174284