JAVAEEHibernate關(guān)系映射實驗_第1頁
JAVAEEHibernate關(guān)系映射實驗_第2頁
JAVAEEHibernate關(guān)系映射實驗_第3頁
JAVAEEHibernate關(guān)系映射實驗_第4頁
JAVAEEHibernate關(guān)系映射實驗_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于Java EE的高級程序設(shè)計實驗指導(dǎo)手冊實驗六:Hibernate關(guān)系映射實驗名稱Hibernate關(guān)系映射實驗步驟一、一對一共享主鍵方式的關(guān)系映射1. 創(chuàng)建Java project,命名為 lab62. 建立數(shù)據(jù)庫及表結(jié)構(gòu)(特別注意:在創(chuàng)建數(shù)據(jù)庫時選擇字符集,例如為gbk,校對規(guī)則為gbk_chinese_ci。否則不能顯示中文字符)登錄表:login列名描述數(shù)據(jù)類型可空默認(rèn)值說明IDID號int(4)否無主鍵USERNAME登錄賬號varchar(20)是無PASSWORD登錄密碼varchar(20)是無用戶詳細(xì)信息表:detail列名描述數(shù)據(jù)類型可空默認(rèn)值說明IDID號int(4)

2、否無主鍵,自增TRUENAME真實姓名varchar(8)是無EMAIL電子郵件varchar(50)是無3在MyEclipse中創(chuàng)建對MySQL的連接1)切換到“MyEclipse Database Explorer”視圖,新建MySQL數(shù)據(jù)庫連接驅(qū)動。啟動MyEclipse,選擇【W(wǎng)indow】【Open Perspective】【MyEclipse Database Explorer】菜單項,打開MyEclipse Database瀏覽器,右擊菜單,如下圖所示,選擇【New】菜單項,出現(xiàn)如圖所示的對話框,編輯數(shù)據(jù)庫連接驅(qū)動。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ū)動存放位置:c盤lib文件夾下2)測試連接:在MyEclipse Database瀏覽器中,右擊剛才創(chuàng)建的MyConn數(shù)據(jù)庫連接,選擇“Open connection”菜單項,打開名為“MyConn”的數(shù)據(jù)連

4、接,如圖所示: 4. 添加Hibernate開發(fā)能力右擊項目名lab6,選擇【MyEclipse】【Add Hibernate Capabilites】菜單項,出現(xiàn)如下圖所示的對話框,選擇Hibernate框架應(yīng)用版本及所需要的類庫。單擊【Next】按鈕,進(jìn)入如下圖所示界面。創(chuàng)建Hibernate配置文件hibernate.cfg.xml,將該文件放在src文件夾下,后面會詳細(xì)介紹該文件內(nèi)容。這里先說明添加Hibernate開發(fā)功能的步驟。單擊【Next】按鈕,進(jìn)入如下圖所示界面,指定Hibernate數(shù)據(jù)庫連接細(xì)節(jié)。由于在前面已經(jīng)配置一個名為MyConn的數(shù)據(jù)庫連接,所以這里只需要選擇DB

5、Driver為“MyConn”即可。單擊【Next】按鈕,出現(xiàn)如下圖所示界面。Hibernate中有一個與數(shù)據(jù)庫打交道重要的類Session。而這個類是由工廠SessionFactory創(chuàng)建的。這個界面詢問是否需要創(chuàng)建SessionFactory類。如果需要創(chuàng)建,還需要指定創(chuàng)建的位置和類名。這些接口都會在后面詳細(xì)介紹。單擊【Finish】按鈕,完成Hibernate的配置。5. 生成數(shù)據(jù)庫表對應(yīng)的Java類對象和映射文件在MyEclispse下創(chuàng)建一個名為“org.model”的包,這個包將用來存放與數(shù)據(jù)庫表對應(yīng)的Java類POJO。打開MyEclipse Database Explorer視

6、圖。打開前面創(chuàng)建的MyConn數(shù)據(jù)連接,選擇【XSCJ】【TABLE】菜單項,右擊相應(yīng)表(登錄表和用戶信息表),選擇【Hibernate Reverse Engineering】菜單項,如下圖所示,將啟動Hibernate Reverse Engineering向?qū)?,該向?qū)в糜谕瓿蓮囊延械臄?shù)據(jù)庫表生成對應(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ù)(反向工程自動生成的構(gòu)造函數(shù)必須有否則操作數(shù)據(jù)庫會報錯)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. 測試類

8、Test.javaTest.java:/此處省略main方法Session session=HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction(); / 創(chuàng)建事務(wù)對象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(); 二、多對多的關(guān)系映射1.建立數(shù)據(jù)庫及表結(jié)構(gòu)學(xué)生表:student列名描述數(shù)據(jù)類型可空默認(rèn)值說明IDID號int否無主鍵SNUMBER學(xué)號varchar(10)是無SNAME姓名varchar(10)SAGE年齡int是無課程表:course列名描述數(shù)據(jù)類型可空默認(rèn)值說明ID ID號int 否無主鍵CNUMBER 課程號varchar(10) 是無CNAME 課程名varchar(20) 是無學(xué)生選課表(

10、連接表):stu_cour列名描述數(shù)據(jù)類型可空默認(rèn)值說明SID 學(xué)生ID號int 否無主鍵CID 課程ID號int 否無主鍵3生成數(shù)據(jù)庫表對應(yīng)的Java類對象和映射文件在MyEclispse下創(chuàng)建一個名為“org.model”的包,這個包將用來存放與數(shù)據(jù)庫表對應(yīng)的Java類POJO。打開MyEclipse Database Explorer視圖。打開前面創(chuàng)建的MyConn數(shù)據(jù)連接,選擇【XSCJ】【TABLE】菜單項,右擊相應(yīng)表(學(xué)生表和課程信息表),選擇【Hibernate Reverse Engineering】菜單項,如下圖所示,將啟動Hibernate Reverse Engineer

11、ing向?qū)?,該向?qū)в糜谕瓿蓮囊延械臄?shù)據(jù)庫表生成對應(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ù)(反向工程自動生成的構(gòu)造函數(shù)必須有否則操作數(shù)據(jù)庫會報錯)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(); / 創(chuàng)建事務(wù)對象Course cour1=new Course();Course cour2=new Course();Course cour3=new Course();cour1.setCnumber(101);cour1.setCname(計算機(jī)基礎(chǔ));cour2.setCnumber(102);cour2.setCname(數(shù)據(jù)庫原理);cour3.setCnumber(103);cour3.setCname(計算機(jī)原理);Set courses=new HashSet();courses.add(cour1);courses.add(cour2);courses.add(cour

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論