日韩性视频-久久久蜜桃-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关系的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 7mav视频| 日韩精品一区二区av | 欧美日韩一区二区三区不卡 | 四虎影视免费观看 | 日本xxxx18| 99re在线视频精品 | 一级特黄录像免费看 | 黄色在线观看网站 | 好吊妞视频一区二区三区 | 操操网 | 免费不卡av | 国产曰肥老太婆无遮挡 | 成年网站在线播放 | 无码毛片aaa在线 | 最新中文字幕久久 | aaa一区二区 | 亚洲综合在线成人 | 男生女生搞黄色 | 日韩视频在线观看一区二区三区 | 美国做爰xxxⅹ性视频 | 日本三级久久久 | 欧洲一级黄 | 精品午夜一区二区三区在线观看 | 古代黄色片 | 四虎一区二区三区 | 免费看污的网站 | 亚洲黄v | 成人做爰视频www网站小优视频 | 亚洲欧美成人综合 | 国产丝袜久久 | 色丁香综合 | 免费av大全 | 亚洲激情视频网 | 精品免费看 | 五月天综合网站 | 东京久久久 | 天天射综合网站 | 国产精品亚洲成在人线 | 久久91亚洲 | xxxxhd欧美 | 99国产精品免费 | 女人脱下裤子让男人桶 | 午夜精品久久久久久久久久久久久 | 国产区在线观看视频 | 精品综合在线 | 丁香综合激情 | 日韩在线不卡 | 国产在线观看免费高清 | 九九热精彩视频 | 黄色一级淫片 | 亚洲成人诱惑 | 午夜粉色视频 | www日本xxx| 少妇淫片 | 久久视频一区二区 | 日韩精品一卡二卡 | 欧美少妇18p | 性视频一区| 欧美成人资源 | 四虎永久在线精品 | 中国超碰 | 999一区二区三区 | 91精品推荐 | 91亚洲精品国偷拍自产在线观看 | 涩涩视频免费观看 | 天天操人人干 | 国产91对白在线播放 | 天美视频在线观看 | 成人看片黄a免费看视频 | 91射区| 国产第一页在线 | 久久久久久久999 | 成人免费视频视频 | 一区二区免费播放 | 国产视频123区 | 成人深夜福利在线观看 | 亚洲图片88 | 亚洲成人无码久久 | 欧美挤奶吃奶水xxxxx | 亚洲综合色吧 | 又黄又爽的网站 | 综合久 | 男女网站在线观看 | 欧美在线小视频 | 99小视频 | 五月天社区 | 一本大道久久精品 | 婷婷激情五月综合 | 香蕉视频在线观看黄 | 日本久久久久久久久久久 | 很很干很很日 | 麻豆传媒一区二区 | 亚洲一区二区三区四区五区六区 | 叼嘿视频91 | 极品美女高潮出白浆 | 熊猫电影yy8y全部免费观看 | 成人av网站大全 | 久久aⅴ国产欧美74aaa | 天天插美女 |