自己创建 hibernate mapping
不一定要用 MyEclipse 的 Hibernate 框架生成数据库表的映射文件,其实很简单:
在Eclipse环境中,新建一个项目并添加Hibernate框架.
假设有两个表,分别是 MainClass 和 SubClass ,下面是两个表的表结构:(使用 MySQL 数据库)--ID
MIDintAUTO_INCREMENTprimarykey,
--mainclassname
MClsNamevarchar(20)notnull)ENGINE=MyISAMDEFAULTCHARSET=utf8;
CreatetableSubClass(
--subclassID
SIDintAUTO_INCREMENTprimarykey,
--subclassname
SClsNamevarchar(20)notnull,
--mainclassID(外键)
MID int not null)ENGINE=MyISAM DEFAULT CHARSET=utf8;现在来创建 MainClass 的类 MainClass.java,代码如下:
privateintmainClsId;
privateStringmainClsName;
//mainClsIdGetterandSetter
publicintgetMainClsId()...{
returnmainClsId;
}
publicvoidsetMainClsId(intmainClsId)...{
this.mainClsId=mainClsId;
}
//mainClsNameGetterandSetter
publicStringgetMainClsName()...{
returnmainClsId;
}
publicvoidsetMainClsName(StringmainClsName)...{
this.mainClsName=mainClsName;
}
}
//SubClass.java,代码如下:
publicclassSubClass...{
privateintsubClsId;
privateStringsubClsName;
privateintmainClsId;
privateMainClassmainClass;
//mainClassGetterandSetter
publicMainClassgetMainClass()...{
returnmainClass;
}
publicvoidsetMainClass(MainClassmainClass)...{
this.mainClass=mainClass;
}
//mainClsIdGetterandSetter
publicintgetMainClsId()...{
returnmainClsId;
}
publicvoidsetMainClsId(intmainClsId)...{
this.mainClsId=mainClsId;
}
//subClsIdGetterandSetter
publicintgetSubClsId()...{
returnsubClsId;
}
publicvoidsetSubClsId(intsubClsId)...{
this.subClsId=subClsId;
}
//subClsNameGetterandSetter
publicStringgetSubClsName()...{
returnsubClsName;
}
publicvoidsetSubClsName(StringsubClsName)...{
this.subClsName=subClsName;
}
}接着就是写 映射文件了,MainClass.java 的映射文件 MainClass.hbm.xml
<!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
MappingfileautogeneratedbyMyEclipse-HibernateTools
-->
<hibernate-mapping>
<classname="com.demo.model.MainClass"table="MainClass"catalog="test">
<idname="mainClsId"type="integer"><!--name是MainClass.java中的mainClsId属性-->
<columnname="MID"/><!--name是MainClass表中对应的列名-->
<generatorclass="native"/>
</id>
<propertyname="mainClsName"type="string">
<columnname="MClsName"length="20"not-null="true"/>
</property>
</class>
</hibernate-mapping>SubClass.java 的映射文件 SubClass.hbm.xml
<!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
MappingfileautogeneratedbyMyEclipse-HibernateTools
-->
<hibernate-mapping>
<classname="com.demo.model.SubClass"table="SubClass"catalog="test">
<idname="subClsId"type="integer"><!--name是SubClass.java中的subClsId属性-->
<columnname="SID"/><!--name是SubClass表中对应的列名-->
<generatorclass="native"/>
</id>
<propertyname="subClsName"type="string">
<columnname="SClsName"length="20"not-null="true"/>
</property>
<!--这里很重要,作用是声明这段是数据库表中的外键-->
<propertyname="mainClsId"column="MID"/>
<!--这里的column,应该对应声明外键的name,即mainClsId,而name="mainClass"就是SubClass里的一个属性-->
<many-to-onename="mainClass"column="mainClsId"
class="com.demo.model.MainClass"
lazy="false"
not-found="ignore"
cascade="none"
insert="false"
update="false"/>
</class>
</hibernate-mapping>好..最后一步就是在 hibenate 的配置文件中加上这两个 映射文件 地址就可以了
大功告成~~~~ :)