一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - Java教程 - Hibernate實現many-to-many的映射關系

Hibernate實現many-to-many的映射關系

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

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

hibernate多對多 關聯映射(many-to-many)

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

hibernate會為我們創建中間關聯表,轉換成兩個一對多。

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

Hibernate實現many-to-many的映射關系

(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學生選課表

?
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 表示一門課程可以對應多個選課記錄 -->
 <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 一個學生可以對應多個選課記錄 -->
 <set name="stucourses">
  <key column="student_id" /> <!-- 這里的column是外鍵 -->
  <one-to-many class="stucourse" /> <!-- many所對應的表 -->
 </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自動創建關系模型(表) -->
 <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>

總結

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 图片专区小说专区卡通动漫 | 缴情五月天 | 黑人巨大和日本娇小中出 | 欧洲女同同性videos0 | 五花大绑esebdsm国产 | 亚洲国产精品福利片在线观看 | xxxxx性13一14| 女人把私密部位张开让男人桶 | 国产精品久久久久毛片 | 情缘1完整版在线观看 | 国产精品久久久久久吹潮 | 超强台风免费观看完整版视频 | 亚洲午夜精品久久久久 | 春光乍泄在线 | 男同巨黄gay小说好爽 | 日本视频中文字幕 | 国产欧美日韩专区 | zol中关村在线官网 yy6080欧美三级理论 | 亚洲成色WWW久久网站夜月 | 亚洲人成影院午夜网站 | 日韩国产欧美一区二区三区 | 69av免费视频 | x8x8在线永久免费观看 | 女老板用丝袜脚夹我好爽 | 亚洲一区二区三区不卡在线播放 | 法国贵妇一级伦理hd | 国产亚洲精品一区在线播 | 亚洲欧美日韩中文高清一 | 国色天香 社区视频 | 亚洲男人的天堂成人 | 日本精品一区二区三区 | α级毛片 | 2020精品极品国产色在线观看 | 图片专区小说专区卡通动漫 | 無码一区中文字幕少妇熟女网站 | yellow视频免费观看播放 | 大吊操 | h黑寡妇一级毛片 | 国产福利一区二区在线精品 | 亚洲国产高清一区二区三区 | 韩日一区二区三区 |