日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【SSH三个框架】Hibernate第八部分基础:经营-many关系

發布時間:2025/7/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SSH三个框架】Hibernate第八部分基础:经营-many关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Hibernate在-many關系。它通常不使用。由于當數據庫查詢復雜度太高時。

我們在這里做的是學生和教師,學生可以有多個老師,教師可以有多個學生。




我們首先建立一個學生實體類:Student.java

package cn.itcast.hibernate.domain;import java.util.Set;public class Student {private int id;private String name;private Set<Teacher> teachers;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Teacher> getTeachers() {return teachers;}public void setTeachers(Set<Teacher> teachers) {this.teachers = teachers;} } 我們定義了三個三個屬性。各自是id、name和一個set集合


然后是老師實體類:Teacher.java

package cn.itcast.hibernate.domain;import java.util.Set;public class Teacher {private int id;private String name;private Set<Student> students;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Student> getStudents() {return students;}public void setStudents(Set<Student> students) {this.students = students;} } 我們仍然定義了三個實體類,id、name和一個set集合


然后,我們看下Stduent類的映射文件:

<?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.hibernate.domain"> <class name="Student"> <id name="id"> <generator class="native"/> </id> <property name="name" /> <set name="teachers" table="teacher_student"><key column="student_id" /><many-to-many class="Teacher" column="teacher_id" /></set> </class> </hibernate-mapping> 在這個文件里。我們定義了:id自己主動增長、name屬性。另一個<set>標簽。name屬性是Student.java中的set集合的那個屬性。然后我們在<key>標簽定義外鍵是student_id,然后又定義了一個<many-to-many>標簽,規定了多對多的關系。


下邊是Teacher.java類的映射文件:

<?

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.hibernate.domain"> <class name="Teacher"> <id name="id"> <generator class="native"/> </id> <property name="name" /> <set name="students" table="teacher_student"> <key column="teacher_id" /> <many-to-many class="Student" column="student_id"/> </set> </class> </hibernate-mapping>

和上邊的Stduent類的映射文件差點兒相同


然后,我們寫一個測試類:Many2Many.java

package cn.itcast.hibernate;import java.util.HashSet; import java.util.Set;import org.hibernate.Session; import org.hibernate.Transaction;import cn.itcast.hibernate.domain.Student; import cn.itcast.hibernate.domain.Teacher;public class Many2Many {public static void main(String[] args) {add();query(1);}static void add(){Session s = null;Transaction tx = null;try{//定義了一個Teahcer的set集合Set<Teacher> ts = new HashSet<Teacher>();//定義了一個Student的set集合Set<Student> ss = new HashSet<Student>();//添加一個老師1Teacher t1 = new Teacher();t1.setName("t1 name");ts.add(t1);//添加一個老師2Teacher t2 = new Teacher();t2.setName("t2 name");ts.add(t2);//添加一個學生1Student s1 = new Student();s1.setName("s1");ss.add(s1);//添加一個學生2Student s2 = new Student();s2.setName("s2");ss.add(s2);//這里是設置兩個teacher的set屬性t1.setStudents(ss);t2.setStudents(ss);/** 這是是設置兩個student的set屬性。假設和上邊的設置同一時候出現,則會拋出異常。由于多對多的關系在上邊已經建立* s1.setTeachers(ts);s2.setTeachers(ts);*/s = HibernateUtil.getSession();tx = s.beginTransaction();s.save(t1);s.save(t2);s.save(s1);s.save(s2);tx.commit();}finally{if(s!=null){s.close();}}}static void query(int id){Session s = null;Transaction tx = null;try{s = HibernateUtil.getSession();tx = s.beginTransaction();//依據id查詢得到Teacher對象Teacher t = (Teacher) s.get(Teacher.class, id);//把Teacher對象相應的學生的數量打出來System.out.println("Students:"+t.getStudents().size());tx.commit();}finally{if(s!=null){s.close();}}} }







版權聲明:本文博客原創文章,博客,未經同意,不得轉載。

轉載于:https://www.cnblogs.com/mengfanrong/p/4617153.html

總結

以上是生活随笔為你收集整理的【SSH三个框架】Hibernate第八部分基础:经营-many关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕亚洲第一 | 国产91高清| 国产成人精品国内自产拍免费看 | 国产96在线 | 国产久久精品 | 三级小说视频 | 国产欧美一区二区精品忘忧草 | 中文字幕一区二区三区四区不卡 | 91在线观看免费高清 | 国产九九九九 | 久久久久黄色片 | 天天av天天操 | 日韩一二区 | 91日本在线观看 | www亚洲成人| 久久久久久国产精品一区 | 窝窝午夜精品一区二区 | 国产免费一级片 | 国产露脸91国语对白 | 美女91网站 | 国产一区二区女内射 | 天天干天天谢 | 99久久伊人 | 羞羞动态图 | 91精品人妻一区二区三区蜜桃2 | 免费在线| 天天综合人人 | 国产又粗又猛视频免费 | 亚洲中文字幕无码一区二区三区 | www中文字幕在线观看 | 久久九九国产 | 性欧美hd调教 | 99热国产在线 | 日本熟妇乱子伦xxxx | 日本免费网 | 中文字幕第23页 | 国产精品美女久久 | 成年人在线视频 | 国产免费一区二区三区在线播放 | 欧美高h | 草久在线观看视频 | 97久久久久久 | 黄色一及片 | 污污视频在线播放 | 九热精品 | 久久靖品 | xxxwww国产| 91在线播放国产 | 国产午夜福利片 | 亚洲精品日韩精品 | 三级黄色片免费 | 黑人精品一区二区 | 毛片网 | 免费观看成人毛片 | 亚欧在线视频 | 久久密桃 | 天堂va欧美va亚洲va老司机 | 亚洲激情一区 | 欧美性第一页 | 欧美人妻精品一区二区三区 | 亚洲精品高清视频在线观看 | 亚洲欧美日本一区二区 | 一级黄色免费 | 色哟哟精品一区 | 亚洲精品一区二区三区新线路 | 91视频二区 | 久久久一本| 欧洲精品久久久 | 日韩一区二区久久 | 神马午夜888 | 国产精品毛片一区二区 | 日本大尺度吃奶做爰视频 | 无码人妻丰满熟妇区毛片蜜桃精品 | 久久久久成人精品免费播放动漫 | 欧美啪啪一区二区 | 精品国产69 | 午夜秋霞影院 | 19禁大尺度做爰无遮挡电影 | 日本女优网址 | 色视频国产 | 成人黄色在线网站 | 国产激情小视频 | 日本国产一区 | 日韩黄色免费视频 | 亚洲国产精品成人无久久精品 | 免费在线性爱视频 | 国产在线麻豆精品观看 | 91精品视频网 | 蜜桃臀av一区二区三区 | 91草草草 | 精品久久一 | 欧美日韩成人免费 | 欧美女优视频 | 国产激情网址 | 小辣椒福利视频导航 | 成人夜晚视频 | 奇米色综合 | 一级大片免费看 | аⅴ资源天堂资源库在线 |