91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-04 22:08:32 來源:腳本之家 閱讀:183 作者:jane_jojo 欄目:編程語言

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

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

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

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

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

(2)Student.java

public class Course {
 private Integer id;
 private String name;
 private Set<StuCourse> stuCourses;
 //get/set方法
}

(3)Student.java

public class Student {
 private Integer id;
 private String name;
 private Set<StuCourse> stuCourses;
 <span >//get/set方法</span>
}

(4)StuCourse.java學生選課表

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文件

<?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文件

<?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文件

<?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文件

<?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>

總結

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉鱼县| 福州市| 安远县| 遂川县| 长寿区| 揭西县| 丽水市| 二连浩特市| 无为县| 开化县| 涿鹿县| 长阳| 类乌齐县| 察隅县| 辽宁省| 凉山| 苍梧县| 余江县| 津南区| 右玉县| 富蕴县| 方正县| 阿荣旗| 萍乡市| 黄浦区| 临猗县| 石河子市| 绥阳县| 来凤县| 文水县| 绿春县| 卢氏县| 兴安盟| 福泉市| 巴东县| 临城县| 云南省| 青龙| 依安县| 河源市| 西贡区|