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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【SSH三框架】Hibernate基金会七:许多附属业务

發(fā)布時(shí)間:2025/3/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SSH三框架】Hibernate基金会七:许多附属业务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相對(duì)于上述一關(guān)系,在這里,下一個(gè)一對(duì)多關(guān)系說明。

另外,在上述。我們描述了許多人描述的一一對(duì)應(yīng)關(guān)系。在關(guān)系數(shù)據(jù)庫(kù)是多對(duì)一的關(guān)系。但也有許多關(guān)系。

但,只知道它是不夠的,Hibernate它是一種面向?qū)ο蟮慕Y(jié)構(gòu),于Hibernate還有多對(duì)一的關(guān)系,沒有一對(duì)多,所以我們須要額外加入一對(duì)多的關(guān)系。


部門實(shí)體類:Department.java

package cn.itcast.hibernate.domain;import java.util.Set;public class Department { private int id; private String name; private Set<Employee> emps;public Set<Employee> getEmps() {return emps;}public void setEmps(Set<Employee> emps) {this.emps = emps;}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; } }

部門映射關(guān)系:Department.hbm.xml

<?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="Department" table="tb_Department"> <id name="id"> <generator class="native"/> </id> <property name="name" /> <set name="emps"><key column="depart_id" /><one-to-many class="Employee" /></set></class> </hibernate-mapping> 我們須要注意的是:在部門實(shí)體類中。我們添加了一個(gè)set集合屬性。而且在映射文件里我們也添加了一個(gè)set屬性。這是為了映射一對(duì)多的關(guān)系。

在映射文件里的set標(biāo)簽,我們定義了一個(gè)key標(biāo)簽,這是外鍵。必須與員工類的外鍵同樣。

員工實(shí)體類:Employee.java
package cn.itcast.hibernate.domain;public class Employee { private int id; private String name; private Department depart; 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 Department getDepart() { return depart; } public void setDepart(Department depart) { this.depart = depart; } }


員工映射關(guān)系:Employee.hbm.xml

<?

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="Employee" table="tb_Employee"> <id name="id"> <generator class="native"/> </id> <property name="name" /> <many-to-one name="depart" column="depart_id" /> </class> </hibernate-mapping>


接下來,我們寫一個(gè)測(cè)試的類:Many2One.java

public class Many2One { public static void main(String[] arg){ Department depart = add(); query(depart.getId()); } static Department add(){ Session s = null; Transaction tx = null; try{ Department depart = new Department(); depart.setName("depart name"); Employee emp1 = new Employee(); emp1.setDepart(depart); //建立兩個(gè)對(duì)象的關(guān)聯(lián)關(guān)系 emp1.setName("emp name"); Employee emp2 = new Employee(); emp2.setDepart(depart); //建立兩個(gè)對(duì)象的關(guān)聯(lián)關(guān)系 emp2.setName("emp name"); s = HibernateUtil.getSession(); tx = s.beginTransaction(); s.save(depart);s.save(emp1); //emp對(duì)象和depart對(duì)象保存的先后順序不同也會(huì)有一定的差異 s.save(emp2); //假設(shè)員工(emp)先插入。部門(depart)后插入,會(huì)生成三條數(shù)據(jù)庫(kù)語句, //由于在兩者都插入之后,emp的depart_id字段還未插入,所以還要有最后一條語句插入 tx.commit(); return depart; }finally{ if(s!=null){ s.close(); } } } static Department query(int departId){ Session s = null; Transaction tx = null; try{ s = HibernateUtil.getSession(); tx = s.beginTransaction(); Department depart = (Department)s.get(Department.class, departId); //依據(jù)ID查詢 System.out.println("emp size:"+depart.getEmps().size());//Hibernate.initialize(depart.getEmps());tx.commit(); return depart; }finally{ if(s!=null){ s.close(); } } } } 在main函數(shù)中,我們加入了兩個(gè)數(shù)據(jù)。然后查詢部門id,能夠得到兩個(gè)結(jié)水果。




版權(quán)聲明:本文博主原創(chuàng)文章,博客,未經(jīng)同意不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的【SSH三框架】Hibernate基金会七:许多附属业务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。