




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Java EE的高級(jí)程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)實(shí)驗(yàn)六:Hibernate關(guān)系映射實(shí)驗(yàn)名稱Hibernate關(guān)系映射實(shí)驗(yàn)步驟一、一對(duì)一共享主鍵方式的關(guān)系映射1. 創(chuàng)建Java project,命名為 lab62. 建立數(shù)據(jù)庫及表結(jié)構(gòu)(特別注意:在創(chuàng)建數(shù)據(jù)庫時(shí)選擇字符集,例如為gbk,校對(duì)規(guī)則為gbk_chinese_ci。否則不能顯示中文字符)登錄表:login列名描述數(shù)據(jù)類型可空默認(rèn)值說明IDID號(hào)int(4)否無主鍵USERNAME登錄賬號(hào)varchar(20)是無PASSWORD登錄密碼varchar(20)是無用戶詳細(xì)信息表:detail列名描述數(shù)據(jù)類型可空默認(rèn)值說明IDID號(hào)int(4)
2、否無主鍵,自增TRUENAME真實(shí)姓名varchar(8)是無EMAIL電子郵件varchar(50)是無3在MyEclipse中創(chuàng)建對(duì)MySQL的連接1)切換到“MyEclipse Database Explorer”視圖,新建MySQL數(shù)據(jù)庫連接驅(qū)動(dòng)。啟動(dòng)MyEclipse,選擇【W(wǎng)indow】【Open Perspective】【MyEclipse Database Explorer】菜單項(xiàng),打開MyEclipse Database瀏覽器,右擊菜單,如下圖所示,選擇【New】菜單項(xiàng),出現(xiàn)如圖所示的對(duì)話框,編輯數(shù)據(jù)庫連接驅(qū)動(dòng)。Driver template:MySQL Connector/
3、JDriver name:com.mysql.jdbc.Driver(在url中添加characterEncoding參數(shù),否則在數(shù)據(jù)庫中不能顯示中文)Connection URL:jdbc:mysql:/localhost:3306/javaee?characterEncoding=gbk注:javaee要修改成你所使用的數(shù)據(jù)庫名稱User name:rootPassword:JDBC驅(qū)動(dòng)存放位置:c盤lib文件夾下2)測(cè)試連接:在MyEclipse Database瀏覽器中,右擊剛才創(chuàng)建的MyConn數(shù)據(jù)庫連接,選擇“Open connection”菜單項(xiàng),打開名為“MyConn”的數(shù)據(jù)連
4、接,如圖所示: 4. 添加Hibernate開發(fā)能力右擊項(xiàng)目名lab6,選擇【MyEclipse】【Add Hibernate Capabilites】菜單項(xiàng),出現(xiàn)如下圖所示的對(duì)話框,選擇Hibernate框架應(yīng)用版本及所需要的類庫。單擊【Next】按鈕,進(jìn)入如下圖所示界面。創(chuàng)建Hibernate配置文件hibernate.cfg.xml,將該文件放在src文件夾下,后面會(huì)詳細(xì)介紹該文件內(nèi)容。這里先說明添加Hibernate開發(fā)功能的步驟。單擊【Next】按鈕,進(jìn)入如下圖所示界面,指定Hibernate數(shù)據(jù)庫連接細(xì)節(jié)。由于在前面已經(jīng)配置一個(gè)名為MyConn的數(shù)據(jù)庫連接,所以這里只需要選擇DB
5、Driver為“MyConn”即可。單擊【Next】按鈕,出現(xiàn)如下圖所示界面。Hibernate中有一個(gè)與數(shù)據(jù)庫打交道重要的類Session。而這個(gè)類是由工廠SessionFactory創(chuàng)建的。這個(gè)界面詢問是否需要?jiǎng)?chuàng)建SessionFactory類。如果需要?jiǎng)?chuàng)建,還需要指定創(chuàng)建的位置和類名。這些接口都會(huì)在后面詳細(xì)介紹。單擊【Finish】按鈕,完成Hibernate的配置。5. 生成數(shù)據(jù)庫表對(duì)應(yīng)的Java類對(duì)象和映射文件在MyEclispse下創(chuàng)建一個(gè)名為“org.model”的包,這個(gè)包將用來存放與數(shù)據(jù)庫表對(duì)應(yīng)的Java類POJO。打開MyEclipse Database Explorer視
6、圖。打開前面創(chuàng)建的MyConn數(shù)據(jù)連接,選擇【XSCJ】【TABLE】菜單項(xiàng),右擊相應(yīng)表(登錄表和用戶信息表),選擇【Hibernate Reverse Engineering】菜單項(xiàng),如下圖所示,將啟動(dòng)Hibernate Reverse Engineering向?qū)В撓驅(qū)в糜谕瓿蓮囊延械臄?shù)據(jù)庫表生成對(duì)應(yīng)的Java類和相關(guān)映像文件的配置工作。首先,選擇生成的Java類和映像文件所在的位置,如圖所示。單擊【Next】按鈕,進(jìn)入如圖所示的界面,選擇主鍵生成策略。 下面列舉需要修改的代碼,修改后的代碼如下。Detail.javapackage org.model;public class Detai
7、l private String email; private Login login; / 省略getter和setter方法及構(gòu)造函數(shù)(反向工程自動(dòng)生成的構(gòu)造函數(shù)必須有否則操作數(shù)據(jù)庫會(huì)報(bào)錯(cuò))Login.javapackage org.model;public class Login private String password; private Detail detail; / 省略getter和setter方法及構(gòu)造函數(shù)Login.hbm.xml detail Detail.hbm.xml 注意:檢查一下在hibernate.cfg.xml文件中是否已加入配置映射文件的語句6. 測(cè)試類
8、Test.javaTest.java:/此處省略main方法Session session=HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction(); / 創(chuàng)建事務(wù)對(duì)象Detail detail=new Detail();Login login=new Login();login.setUsername(yanhong);login.setPassword(123);detail.setTruename(嚴(yán)紅);detail.setEmail(yanhong);login.setDetail(d
9、etail);detail.setLogin(login);session.save(detail);mit();HibernateSessionFactory.closeSession(); 二、多對(duì)多的關(guān)系映射1.建立數(shù)據(jù)庫及表結(jié)構(gòu)學(xué)生表:student列名描述數(shù)據(jù)類型可空默認(rèn)值說明IDID號(hào)int否無主鍵SNUMBER學(xué)號(hào)varchar(10)是無SNAME姓名varchar(10)SAGE年齡int是無課程表:course列名描述數(shù)據(jù)類型可空默認(rèn)值說明ID ID號(hào)int 否無主鍵CNUMBER 課程號(hào)varchar(10) 是無CNAME 課程名varchar(20) 是無學(xué)生選課表(
10、連接表):stu_cour列名描述數(shù)據(jù)類型可空默認(rèn)值說明SID 學(xué)生ID號(hào)int 否無主鍵CID 課程ID號(hào)int 否無主鍵3生成數(shù)據(jù)庫表對(duì)應(yīng)的Java類對(duì)象和映射文件在MyEclispse下創(chuàng)建一個(gè)名為“org.model”的包,這個(gè)包將用來存放與數(shù)據(jù)庫表對(duì)應(yīng)的Java類POJO。打開MyEclipse Database Explorer視圖。打開前面創(chuàng)建的MyConn數(shù)據(jù)連接,選擇【XSCJ】【TABLE】菜單項(xiàng),右擊相應(yīng)表(學(xué)生表和課程信息表),選擇【Hibernate Reverse Engineering】菜單項(xiàng),如下圖所示,將啟動(dòng)Hibernate Reverse Engineer
11、ing向?qū)?,該向?qū)в糜谕瓿蓮囊延械臄?shù)據(jù)庫表生成對(duì)應(yīng)的Java類和相關(guān)映像文件的配置工作。首先,選擇生成的Java類和映像文件所在的位置,如圖所示。單擊【Next】按鈕,進(jìn)入如圖所示的界面,選擇主鍵生成策略。 下面列舉需要修改的代碼,修改后的代碼如下。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方法及構(gòu)造函數(shù)(反向工程自動(dòng)生成的構(gòu)造函數(shù)必須有否則操作數(shù)據(jù)庫會(huì)報(bào)錯(cuò))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. 測(cè)試類Test.javaTest.java:/此處省略main方法Session session=HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction(); / 創(chuàng)建事務(wù)對(duì)象Course cour1=new Course();Course cour2=new Course();Course cour3=new Course();cour1.setCnumber(101);cour1.setCname(計(jì)算機(jī)基礎(chǔ));cour2.setCnumber(102);cour2.setCname(數(shù)據(jù)庫原理);cour3.setCnumber(103);cour3.setCname(計(jì)算機(jī)原理);Set courses=new HashSet();courses.add(cour1);courses.add(cour2);courses.add(cour
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CMMA 6-2019鎂質(zhì)膠凝材料及制品術(shù)語
- T/CITS 0003-2022標(biāo)準(zhǔn)“領(lǐng)跑者”評(píng)價(jià)要求電冰箱檢驗(yàn)檢測(cè)服務(wù)
- T/CIMA 0027-2021交流采樣測(cè)量裝置檢驗(yàn)規(guī)范
- T/CIIA 032.2-2022風(fēng)電企業(yè)綠色供應(yīng)鏈信息管理平臺(tái)第2部分:能源數(shù)據(jù)采集要求
- T/CIIA 016-2022智慧工地應(yīng)用規(guī)范
- T/CHES 55-2021技術(shù)供水系統(tǒng)沼蛤防治導(dǎo)則
- T/CECS 10191-2022建筑及居住區(qū)數(shù)字化戶用計(jì)量?jī)x表安全技術(shù)要求
- T/CECS 10110-2020排污、排水用高性能硬聚氯乙烯管材
- T/CECS 10068-2019綠色建材評(píng)價(jià)凈水設(shè)備
- T/CECS 10022-2021埋地用改性高密度聚乙烯(HDPE-M)雙壁波紋管材
- 網(wǎng)絡(luò)優(yōu)化低PHR高占比提升優(yōu)化處理案例總結(jié)
- 《公路隧道施工技術(shù)規(guī)范》(3660-2020)【可編輯】
- 2023-2024學(xué)年安徽省合肥市七年級(jí)下學(xué)期期末語文質(zhì)量檢測(cè)試題(含答案)
- 華為認(rèn)證安全方向HCIP-Security H12-725 V4.0更新題庫匯總(含答案)
- 中國城市區(qū)域劃分表(超實(shí)用)
- 2022分布式并網(wǎng)光伏調(diào)試方案
- 卷揚(yáng)機(jī)調(diào)速控制系統(tǒng)設(shè)計(jì)
- 研學(xué)旅行PPT模板
- 精神科常見并發(fā)癥發(fā)生危險(xiǎn)及防范課件
- 精益管理之精益生產(chǎn)
- 架空索道安裝施工工藝標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論