激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Hibernate實現(xiàn)many-to-many的映射關(guān)系

Hibernate實現(xiàn)many-to-many的映射關(guān)系

2021-07-26 11:27jane_jojo Java教程

今天小編就為大家分享一篇關(guān)于Hibernate實現(xiàn)many-to-many的映射關(guān)系,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

hibernate多對多 關(guān)聯(lián)映射(many-to-many)

在操作和性能方面都不太理想,所以多對多的映射使用較少,實際使用中最好轉(zhuǎn)換成一對多的對象模型;

hibernate會為我們創(chuàng)建中間關(guān)聯(lián)表,轉(zhuǎn)換成兩個一對多。

(1)一個最簡單的例子就是學(xué)生選課的數(shù)據(jù)表了

Hibernate實現(xiàn)many-to-many的映射關(guān)系

(2)student.java

?
1
2
3
4
5
6
public class course {
 private integer id;
 private string name;
 private set<stucourse> stucourses;
 //get/set方法
}

(3)student.java

?
1
2
3
4
5
6
public class student {
 private integer id;
 private string name;
 private set<stucourse> stucourses;
 <span style="font-family: arial, helvetica, sans-serif;">//get/set方法</span>
}

(4)stucourse.java學(xué)生選課表

?
1
2
3
4
5
6
7
8
package com.hsp.domain;
public class stucourse {
 private integer id;
 private student student;
 private course course;
 private integer grade;
 //get/set方法
}

(5)course.hbm.xml文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<!doctype hibernate-mapping public "-//hibernate/hibernate mapping dtd 3.0//en"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hsp.domain">
 <class name="course">
 <id name="id" type="java.lang.integer">
  <generator class="sequence">
  <param name="sequence">course_seq</param>
  </generator>
 </id>
 <property name="name" type="java.lang.string">
  <column name="name" length="64" />
 </property>
 <!-- 配置one-to-many 表示一門課程可以對應(yīng)多個選課記錄 -->
 <set name="stucourses">
  <key column="course_id" />
  <one-to-many class="stucourse" />
 </set>
 </class>
</hibernate-mapping>

(6)student.hbm.xml文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<!doctype hibernate-mapping public "-//hibernate/hibernate mapping dtd 3.0//en"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hsp.domain">
 <class name="student">
 <id name="id" type="java.lang.integer">
  <generator class="sequence">
  <param name="sequence">stu_seq</param>
  </generator>
 </id>
 <property name="name" type="java.lang.string">
  <column name="name" length="64" />
 </property>
  <!-- 這里我們配置了one-to-many 一個學(xué)生可以對應(yīng)多個選課記錄 -->
 <set name="stucourses">
  <key column="student_id" /> <!-- 這里的column是外鍵 -->
  <one-to-many class="stucourse" /> <!-- many所對應(yīng)的表 -->
 </set>
 </class>
</hibernate-mapping>

(7)stucourse.hbm.xml文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<!doctype hibernate-mapping public "-//hibernate/hibernate mapping dtd 3.0//en"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hsp.domain">
 <class name="stucourse">
 <id name="id" type="java.lang.integer">
  <generator class="sequence">
  <param name="sequence">stucourse_seq</param>
  </generator>
 </id>
 <property name="grade" type="java.lang.integer">
  <column name="grade" length="3" />
 </property>
 <many-to-one name="course" column="course_id" />
 <many-to-one name="student" column="student_id" />
 </class>
</hibernate-mapping>

(8)hibernate.cfg.xml文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version='1.0' encoding='utf-8'?>
<!doctype hibernate-configuration public
     "-//hibernate/hibernate configuration dtd 3.0//en"
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- generated by myeclipse hibernate tools. -->
<hibernate-configuration>
 <session-factory>
 <property name="connection.username">root</property>
 <property name="connection.url">
  jdbc:oracle:thin:@127.0.0.1:1521:oracledb
 </property>
 <property name="dialect">
  org.hibernate.dialect.oracle9dialect
 </property>
 <property name="connection.password">root</property>
 <property name="connection.driver_class">
  oracle.jdbc.driver.oracledriver
 </property>
 <property name="show_sql">true</property>
 <!-- 配置讓hibernate自動創(chuàng)建關(guān)系模型(表) -->
 <property name="hbm2ddl.auto">update</property>
 <mapping resource="com/hsp/domain/course.hbm.xml" />
 <mapping resource="com/hsp/domain/stucourse.hbm.xml" />
 <mapping resource="com/hsp/domain/student.hbm.xml" />
 </session-factory>
</hibernate-configuration>

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

原文鏈接:https://blog.csdn.net/huanglong1218/article/details/52313047

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人毛片免费播放 | 久久国产乱子伦精品 | 毛片av网| 久久色播 | 99国产精品自拍 | 高清一区二区在线观看 | 主人在调教室性调教女仆游戏 | 黄视频| 久久久一区二区三区精品 | 久久精品超碰 | 精品无吗乱吗av国产爱色 | 久久不射电影网 | 精品国产三级a | 国产成人精品区 | 美国黄色毛片女人性生活片 | 狠狠操人人干 | 亚洲精品免费播放 | 欧美色视频免费 | 免费在线观看国产 | 国产欧美精品一区二区三区四区 | 成人mm视频在线观看 | 海角在线观看91一区二区 | 国产亚洲精品久久久久久久久 | 91网站永久免费看 | 久久91久久久久麻豆精品 | 91成人免费看 | 黄色av一区二区三区 | 91精品国产日韩91久久久久久360 | 亚洲成人欧美 | 日韩激情在线视频 | 精品国产一区二区久久 | 久久久精彩 | 欧美日韩在线播放一区 | 韩国十九禁高潮床戏在线观看 | 国产一区二区欧美精品 | 久久欧美亚洲另类专区91大神 | 看免费毛片 | 久久精品污 | 国内精品一级毛片免费看 | 爱爱视频天天干 | 欧美精品18 |