自己创建 hibernate mapping

不一定要用 MyEclipse 的 Hibernate 框架生成数据库表的映射文件,其实很简单:

在Eclipse环境中,新建一个项目并添加Hibernate框架.

假设有两个表,分别是 MainClass 和 SubClass ,下面是两个表的表结构:(使用 MySQL 数据库)
自己创建 hibernate mappingCreate table MainClass(

--ID

MIDintAUTO_INCREMENTprimarykey,

--mainclassname

MClsNamevarchar(20)notnull)ENGINE=MyISAMDEFAULTCHARSET=utf8;

CreatetableSubClass(

--subclassID

SIDintAUTO_INCREMENTprimarykey,

--subclassname

SClsNamevarchar(20)notnull,

--mainclassID(外键)

自己创建 hibernate mappingMID int not null)ENGINE=MyISAM DEFAULT CHARSET=utf8;

现在来创建 MainClass 的类 MainClass.java,代码如下:

自己创建 hibernate mapping自己创建 hibernate mappingpublic class MainClass ...{

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;

}

自己创建 hibernate mapping}

接着就是写 映射文件了,MainClass.java 的映射文件 MainClass.hbm.xml

自己创建 hibernate mapping<?xml version="1.0"?>

<!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</hibernate-mapping>

SubClass.java 的映射文件 SubClass.hbm.xml

自己创建 hibernate mapping<?xml version="1.0"?>

<!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</hibernate-mapping>

好..最后一步就是在 hibenate 的配置文件中加上这两个 映射文件 地址就可以了

自己创建 hibernate mapping    <mapping resource="com/demo/model/MainClass.hbm.xml"></mapping>自己创建 hibernate mapping    <mapping resource="com/demo/model/SubClass.hbm.xml"></mapping>

大功告成~~~~ :)

来源:http://www.fish888.com/hibernate-mapping-t174284

相关推荐