




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于Java EE的高級程序設計實驗指導手冊實驗六:Hibernate關系映射實驗名稱Hibernate關系映射實驗步驟一、一對一共享主鍵方式的關系映射1. 創建Java project,命名為 lab62. 建立數據庫及表結構(特別注意:在創建數據庫時選擇字符集,例如為gbk,校對規則為gbk_chinese_ci。否則不能顯示中文字符)登錄表:login列名描述數據類型可空默認值說明IDID號int(4)否無主鍵USERNAME登錄賬號varchar(20)是無PASSWORD登錄密碼varchar(20)是無用戶詳細信息表:detail列名描述數據類型可空默認值說明IDID號int(4)
2、否無主鍵,自增TRUENAME真實姓名varchar(8)是無EMAIL電子郵件varchar(50)是無3在MyEclipse中創建對MySQL的連接1)切換到“MyEclipse Database Explorer”視圖,新建MySQL數據庫連接驅動。啟動MyEclipse,選擇【Window】【Open Perspective】【MyEclipse Database Explorer】菜單項,打開MyEclipse Database瀏覽器,右擊菜單,如下圖所示,選擇【New】菜單項,出現如圖所示的對話框,編輯數據庫連接驅動。Driver template:MySQL Connector/
3、JDriver name:com.mysql.jdbc.Driver(在url中添加characterEncoding參數,否則在數據庫中不能顯示中文)Connection URL:jdbc:mysql:/localhost:3306/javaee?characterEncoding=gbk注:javaee要修改成你所使用的數據庫名稱User name:rootPassword:JDBC驅動存放位置:c盤lib文件夾下2)測試連接:在MyEclipse Database瀏覽器中,右擊剛才創建的MyConn數據庫連接,選擇“Open connection”菜單項,打開名為“MyConn”的數據連
4、接,如圖所示: 4. 添加Hibernate開發能力右擊項目名lab6,選擇【MyEclipse】【Add Hibernate Capabilites】菜單項,出現如下圖所示的對話框,選擇Hibernate框架應用版本及所需要的類庫。單擊【Next】按鈕,進入如下圖所示界面。創建Hibernate配置文件hibernate.cfg.xml,將該文件放在src文件夾下,后面會詳細介紹該文件內容。這里先說明添加Hibernate開發功能的步驟。單擊【Next】按鈕,進入如下圖所示界面,指定Hibernate數據庫連接細節。由于在前面已經配置一個名為MyConn的數據庫連接,所以這里只需要選擇DB
5、Driver為“MyConn”即可。單擊【Next】按鈕,出現如下圖所示界面。Hibernate中有一個與數據庫打交道重要的類Session。而這個類是由工廠SessionFactory創建的。這個界面詢問是否需要創建SessionFactory類。如果需要創建,還需要指定創建的位置和類名。這些接口都會在后面詳細介紹。單擊【Finish】按鈕,完成Hibernate的配置。5. 生成數據庫表對應的Java類對象和映射文件在MyEclispse下創建一個名為“org.model”的包,這個包將用來存放與數據庫表對應的Java類POJO。打開MyEclipse Database Explorer視
6、圖。打開前面創建的MyConn數據連接,選擇【XSCJ】【TABLE】菜單項,右擊相應表(登錄表和用戶信息表),選擇【Hibernate Reverse Engineering】菜單項,如下圖所示,將啟動Hibernate Reverse Engineering向導,該向導用于完成從已有的數據庫表生成對應的Java類和相關映像文件的配置工作。首先,選擇生成的Java類和映像文件所在的位置,如圖所示。單擊【Next】按鈕,進入如圖所示的界面,選擇主鍵生成策略。 下面列舉需要修改的代碼,修改后的代碼如下。Detail.javapackage org.model;public class Detai
7、l private String email; private Login login; / 省略getter和setter方法及構造函數(反向工程自動生成的構造函數必須有否則操作數據庫會報錯)Login.javapackage org.model;public class Login private String password; private Detail detail; / 省略getter和setter方法及構造函數Login.hbm.xml detail Detail.hbm.xml 注意:檢查一下在hibernate.cfg.xml文件中是否已加入配置映射文件的語句6. 測試類
8、Test.javaTest.java:/此處省略main方法Session session=HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction(); / 創建事務對象Detail detail=new Detail();Login login=new Login();login.setUsername(yanhong);login.setPassword(123);detail.setTruename(嚴紅);detail.setEmail(yanhong);login.setDetail(d
9、etail);detail.setLogin(login);session.save(detail);mit();HibernateSessionFactory.closeSession(); 二、多對多的關系映射1.建立數據庫及表結構學生表:student列名描述數據類型可空默認值說明IDID號int否無主鍵SNUMBER學號varchar(10)是無SNAME姓名varchar(10)SAGE年齡int是無課程表:course列名描述數據類型可空默認值說明ID ID號int 否無主鍵CNUMBER 課程號varchar(10) 是無CNAME 課程名varchar(20) 是無學生選課表(
10、連接表):stu_cour列名描述數據類型可空默認值說明SID 學生ID號int 否無主鍵CID 課程ID號int 否無主鍵3生成數據庫表對應的Java類對象和映射文件在MyEclispse下創建一個名為“org.model”的包,這個包將用來存放與數據庫表對應的Java類POJO。打開MyEclipse Database Explorer視圖。打開前面創建的MyConn數據連接,選擇【XSCJ】【TABLE】菜單項,右擊相應表(學生表和課程信息表),選擇【Hibernate Reverse Engineering】菜單項,如下圖所示,將啟動Hibernate Reverse Engineer
11、ing向導,該向導用于完成從已有的數據庫表生成對應的Java類和相關映像文件的配置工作。首先,選擇生成的Java類和映像文件所在的位置,如圖所示。單擊【Next】按鈕,進入如圖所示的界面,選擇主鍵生成策略。 下面列舉需要修改的代碼,修改后的代碼如下。Student.javapackage org.model;import java.util.HashSet;import java.util.Set;public class Student implements java.io.Serializable private int sage; private Set courses=new Hash
12、Set(); /省略上述各屬性的getter和setter方法及構造函數(反向工程自動生成的構造函數必須有否則操作數據庫會報錯)Course.javapackage org.model;import java.util.HashSet;import java.util.Set;public class Course implements java.io.Serializable private String cname; private Set stus=new HashSet(); /省略上述各屬性的getter和setter方法Student.hbm.xml Course.hbm.xml
13、注意:檢查一下在hibernate.cfg.xml文件中是否已加入配置映射文件的語句6. 測試類Test.javaTest.java:/此處省略main方法Session session=HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction(); / 創建事務對象Course cour1=new Course();Course cour2=new Course();Course cour3=new Course();cour1.setCnumber(101);cour1.setCname(計算機基礎);cour2.setCnumber(102);cour2.setCname(數據庫原理);cour3.setCnumber(103);cour3.setCname(計算機原理);Set courses=new HashSet();courses.add(cour1);courses.add(cour2);courses.add(cour
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝配式建筑樓梯預制安裝與節能減排工程服務合同
- 康復病人護理全流程管理
- 遺產官司贍養協議書
- 車位分期貸款協議書
- 集體土地合同協議書
- 風貌塑造安全協議書
- 衛生間服務合同協議書
- 解除環衛合同協議書
- 車輛備案代辦協議書
- cnc工廠學徒協議書
- 慢性淋巴增殖性疾病的診斷課件
- 2024年高校教師資格證資格考試題庫含答案(滿分必刷)
- 2024-2029全球及中國電氣電子中的CFD行業市場發展分析及前景趨勢與投資發展研究報告
- 中國法律史-第三次平時作業-國開-參考資料
- 五十六個民族之土族介紹
- JT∕T 794-2019 道路運輸車輛衛星定位系統車載終端技術要求
- 懸挑腳手架及卸料平臺監理旁站記錄表
- 資產處置報廢方案
- 神志病中西醫結合臨床診療指南-精神分裂癥
- QBT 2198-1996手電筒行業標準
- 人教部編版六年級語文下冊第五單元(教案)
評論
0/150
提交評論