欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年03月29日 14:17:47   作者:jane_jojo  
今天小編就為大家分享一篇關(guān)于Hibernate實(shí)現(xiàn)many-to-many的映射關(guān)系,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

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

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

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

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

(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 style="font-family: Arial, Helvetica, sans-serif;">//get/set方法</span>
}

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

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 表示一門課程可以對應(yīng)多個(gè)選課記錄 -->
 <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 一個(gè)學(xué)生可以對應(yīng)多個(gè)選課記錄 -->
 <set name="stuCourses">
  <key column="student_id" /> <!-- 這里的column是外鍵 -->
  <one-to-many class="StuCourse" /> <!-- many所對應(yīng)的表 -->
 </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自動創(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í)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 聊聊Lombok中的@Builder注解使用教程

    聊聊Lombok中的@Builder注解使用教程

    @Builder注解的作用主要是用來生成對象,并且可以為對象鏈?zhǔn)劫x值。接下來通過本文給大家介紹Lombok中的@Builder注解使用教程,感興趣的朋友一起看看吧
    2021-11-11
  • SpringBoot整合FreeMarker的過程詳解

    SpringBoot整合FreeMarker的過程詳解

    FreeMarker 是一個(gè)模板引擎,可以將模板與數(shù)據(jù)結(jié)合生成文本輸出,本文給大家介紹SpringBoot整合FreeMarker的過程,感興趣的朋友一起看看吧
    2024-01-01
  • IDEA部署Docker鏡像的實(shí)現(xiàn)示例

    IDEA部署Docker鏡像的實(shí)現(xiàn)示例

    本文主要介紹了IDEA部署Docker鏡像的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • UniApp?+?SpringBoot?實(shí)現(xiàn)微信支付和退款功能

    UniApp?+?SpringBoot?實(shí)現(xiàn)微信支付和退款功能

    這篇文章主要介紹了UniApp?+?SpringBoot?實(shí)現(xiàn)微信支付和退款功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Java包裝類的概述與應(yīng)用

    Java包裝類的概述與應(yīng)用

    包裝類使用起來非常方便,但是沒有對應(yīng)的方法來操作這些基本數(shù)據(jù)類型,可以使用一個(gè)類,把基本類型的數(shù)據(jù)裝起來,在類中定義一些方法,我們可以使用類中的方法來操作這些基本類型的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Java包裝類的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Java多線程的實(shí)現(xiàn)方式比較(兩種方式比較)

    Java多線程的實(shí)現(xiàn)方式比較(兩種方式比較)

    Java多線程實(shí)現(xiàn)方式有兩種,第一種是繼承Thread類,第二種是實(shí)現(xiàn)Runnable接口,兩種有很多差異,下面跟著本文一起學(xué)習(xí)吧
    2015-11-11
  • SpringBoot結(jié)合mybatis-plus實(shí)現(xiàn)分頁的項(xiàng)目實(shí)踐

    SpringBoot結(jié)合mybatis-plus實(shí)現(xiàn)分頁的項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot結(jié)合mybatis-plus實(shí)現(xiàn)分頁的項(xiàng)目實(shí)踐,主要基于MyBatis-Plus 自帶的分頁插件 PaginationInterceptor,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java使用sleep方法暫停線程Thread

    Java使用sleep方法暫停線程Thread

    這篇文章介紹了Java使用sleep方法暫停線程Thread,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • java注釋轉(zhuǎn)json插件開發(fā)實(shí)戰(zhàn)詳解

    java注釋轉(zhuǎn)json插件開發(fā)實(shí)戰(zhàn)詳解

    這篇文章主要為大家介紹了java注釋轉(zhuǎn)json插件開發(fā)實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • java中的值傳遞和引用傳遞的區(qū)別分析

    java中的值傳遞和引用傳遞的區(qū)別分析

    本文介紹了“java中的值傳遞和引用傳遞的區(qū)別分析”,需要的朋友可以參考一下
    2013-03-03

最新評論