hibernate如何實(shí)現(xiàn)多表操作

這篇文章將為大家詳細(xì)講解有關(guān)hibernate如何實(shí)現(xiàn)多表操作,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出江陽(yáng)免費(fèi)做網(wǎng)站回饋大家。

多表操作之多對(duì)多關(guān)系簡(jiǎn)介

思路就是:

  • 在數(shù)據(jù)庫(kù)底層通過(guò)添加中間表來(lái)指定關(guān)聯(lián)關(guān)系。

  • 在雙方的實(shí)體中添加一個(gè)保存對(duì)方的集合

  • 在雙方的配置文件中使用set標(biāo)簽和many-to-many標(biāo)簽來(lái)進(jìn)行關(guān)聯(lián)關(guān)系的配置。即可完成!

  • 調(diào)用Hibernate的相關(guān)的API,操作就行了。

需要注意的地方

  • 首先是數(shù)據(jù)庫(kù)中表的創(chuàng)建

這里有一個(gè)小例子:

多對(duì)多的核心表,第三方表。table:

create table thrid(
one_id int not null,
two_id int not null,
constranit FK_one_id froeign key(one_id) reference one(id_in_one),
constraint FK_two_id foreign key(two_id) reference two(id_in_two)
);

這里就是將兩個(gè)表的主鍵作為了這個(gè)第三方的外鍵了。這樣可以方便關(guān)系的搭建。

  • 然后是創(chuàng)建核心的Hibernate.cfg.cml文件,這里不再過(guò)多的闡述。

  • 再就是創(chuàng)建相應(yīng)的符合數(shù)據(jù)庫(kù)中表結(jié)構(gòu)的JavaBean實(shí)體類。

遵守JavaBean的命名規(guī)范
有無(wú)參的構(gòu)造方法
屬性私有,以共有的setter和getter訪問(wèn)
一定一定要記得包含多表中對(duì)方的一個(gè)集合set。

  • 創(chuàng)建XX.hbm.xml映射文件:

這個(gè)映射文件可謂是Hibernate的核心所在了。注意這個(gè)文件要放到和實(shí)體類一個(gè)目錄下,也就是放到實(shí)體包中,這樣會(huì)比較好,方便查找和操作。

使用插件生成或者參照模板進(jìn)行修改。最核心的就是set標(biāo)簽及內(nèi)部的many-to-many標(biāo)簽了,如下:

employees 映射文件配置(多)

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

  <hibernate-mapping package="cn.itcast.h_hbm_oneToMany">

  <class name="Employee" table="employee">

    <id name="id">

      <generator class="native"></generator>

    </id>

    <property name="name"></property>

    <!-- department屬性,Department類型,表示Employee與Department的多對(duì)一 -->

    <many-to-one name="department" column="departmentId" class="Department"></many-to-one>

  </class>

</hibernate-mapping>

以及 department 映射文件配

 <!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.itcast.h_hbm_oneToMany">

  <class name="Department" table="department">

    <id name="id">

      <generator class="native"></generator>

    </id>

    <property name="name"></property>

    <!-- employees屬性,Set集合,表達(dá)的是Department與Employee的一對(duì)多

      inverse屬性:true表示自己是否放棄維護(hù)關(guān)聯(lián)關(guān)系,默認(rèn)為false。

    -->

    <set name="employees" inverse="true">

      <key column="departmentId"></key>

      <one-to-many class="Employee"/>

    </set>

  </class>

</hibernate-mapping>

關(guān)于“hibernate如何實(shí)現(xiàn)多表操作”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站欄目:hibernate如何實(shí)現(xiàn)多表操作
分享URL:http://bm7419.com/article46/jdeshg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、ChatGPT、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)