HibernateTools使用指南_第1頁
HibernateTools使用指南_第2頁
HibernateTools使用指南_第3頁
HibernateTools使用指南_第4頁
HibernateTools使用指南_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Hibernate Tools使用指南ARCH4開發(fā)小組2007年6月目 錄1前言31.1文檔編寫目的31.2文檔適用范圍31.3修訂歷史42ARCH4開發(fā)組的改進53Hibernate Tools的使用方法53.1HibernateTools的配置53.1.1Wordfile格式53.1.2通過JToolpad從PDM生成perties63.2HibernateTools的首次使用63.2.1配置.cfg.xml和console configuration63.2.2配置.reveng.xml113.3HibernateTools的日常使用133.3.1查看配置133

2、.3.2配置類型映射143.3.3配置表的過濾153.3.4配置表和列Table的映射主鍵映射配置字段外鍵關(guān)系183.3.5檢查源代碼183.3.6使用code gen工具生成POJO194附錄214.1Eclipse插件安裝方式214.1.1簡便安裝214.1.2用Links方式安裝224.1.3插件安裝后的效果224.2對于POJO多對多關(guān)系的處理(待確認)224.3使用HQL Editor231 前言本文檔是HIBERNATE TOOLS使用指南,文檔講述的內(nèi)容是如何使用Hibernate Tools的方法,其中講述

3、的指導(dǎo)規(guī)范要求開發(fā)人員必須遵守開發(fā)人員還需要閱讀ARCH4系統(tǒng)開發(fā)指南。本文檔是ARCH4系統(tǒng)開發(fā)指南的補充。參與項目開發(fā)的任何開發(fā)人員如果對本文檔講述的內(nèi)容有疑問,在開發(fā)前請詢問項目經(jīng)理,不允許任何開發(fā)人員以任何理由違反本文檔講述的規(guī)范要求。JBoss公司網(wǎng)站提供的原版的Hibernate Tools存在一些缺陷,為了正常使用Hibernate Tools,ARCH4開發(fā)組針對Hibernate Tools進行了一些修正。1.1 文檔編寫目的避免重復(fù)研究工具如何使用的問題。明確使用的方法1.2 文檔適用范圍本文檔適用于民安產(chǎn)險核心業(yè)務(wù)系統(tǒng)項目組成員。下表是對

4、項目組成員的最低要求:項目組成員是否必讀要求程度項目經(jīng)理是 否了解文檔結(jié)構(gòu) 明白文檔內(nèi)容 透徹理解系統(tǒng)分析師(業(yè)務(wù))是 否了解文檔結(jié)構(gòu) 明白文檔內(nèi)容 透徹理解系統(tǒng)分析師(技術(shù))是 否了解文檔結(jié)構(gòu) 明白文檔內(nèi)容 透徹理解高級程序員是 否了解文檔結(jié)構(gòu) 明白文檔內(nèi)容 透徹理解開發(fā)工程師是 否了解文檔結(jié)構(gòu) 明白文檔內(nèi)容 透徹理解質(zhì)量保證工程師是 否了解文檔結(jié)構(gòu) 明白文檔內(nèi)容 透徹理解對于項目經(jīng)理、系統(tǒng)分析師、高級程序員和開發(fā)工程師,還需要閱讀ARCH4系統(tǒng)架構(gòu)設(shè)計說明書和ARCH4系統(tǒng)開發(fā)規(guī)范。1.3 修訂歷史修訂章節(jié)類型日期作者說明全部創(chuàng)建2007-06-25周咸立Hibernate Tools使用

5、指南。2 ARCH4開發(fā)組的改進JBoss公司網(wǎng)站提供的最新版的Hibernate Tools版本為3.2.0.beta9a,此版本存在一些缺陷,特別是在使用Informix數(shù)據(jù)庫時,問題更加嚴重。為了正常使用Hibernate Tools,ARCH4開發(fā)組針對Hibernate Tools進行了一些修正。主要的變化有:1. 注釋2. 修正Hibernate Tools無法在生成的實體類中設(shè)置自定義類型的Bug3. 當(dāng)自定義類型為BLOB或CLOB時自動對該字段添加延遲加載的標(biāo)記3 Hibernate Tools的使用方法注意:ARCH4開發(fā)組對Hiberna

6、te Tools進行了修正。請使用此版本。SVN地址為:96/pncsvn/src/picclp/others/開發(fā)文檔/Eclipse Plugins/HibernateTools-3.2.0.beta9a-sinosoft如果無法通過SVN獲取,請向項目經(jīng)理索取。參照“4.1Eclipse插件安裝方式”安裝好Hibernate Tools插件后就可以在Eclipse中使用了。Hibernate Tools的使用思路為:1 在cfg.xml中定義基本的數(shù)據(jù)庫配置2 在反向工程文件reveng.xml中定義需要映射的庫表,及其屬性和關(guān)系等3 code gen工

7、具來定義想要生成哪些文件,目標(biāo)路徑,包名4 生成代碼.3.1 HibernateTools的配置ARCH4開發(fā)組對Hibernate Tools增加了一些新的功能。支持通過配置文件支持屬性名的自動大小寫轉(zhuǎn)換及屬性注釋。所以需要提供配置文件。配置文件位于HibernateTools-3.2.0.beta9a-sinosofteclipsepluginsorg.hibernate.eclipse_3.2.0.beta9alibtools目錄下,名為perties。3.1.1 Wordfile格式插件支持多個配置文件,首先從perties獲取,然后依次

8、為perties、perties、perties。通常只需要配置perties一個文件即可。perties的格式為:帶大小寫的屬性名=屬性描述,沒個屬性一行如:AcceptDate=收件時間AcceptFlag=受理標(biāo)志(Y/N)AcceptLicenseDate=初次領(lǐng)證日期AcceptName=收件人Account=帳號AcptDate=接收日期AcptName=處理人3.1.2 通過JToolpad從PDM生成perties3.2 Hib

9、ernateTools的首次使用首次使用需要配置.cfg.xml,console configuration和.reveng.xml.3.2.1 配置.cfg.xml和console configuration按Ctrl+N,打開新建窗口,如下圖所示: 選擇Hibernate Configuration File(cfg.xml)選項點Next按鈕,進入選擇文件夾點Next按鈕,進入 注意:Database dialect選項 填寫完畢后選中Create a console configuration選項,點Next按鈕,進入 填寫信息,點Finish按鈕,在/helloworld/src/j

10、ava目錄下將會生成hibernate.cfg.xml文件. 通過Window/Show view/other菜單,進入 選擇Hibernate Configurations選項,在eclipse中將能夠看到剛才配置的console configuration.3.2.2 配置.reveng.xml 按Ctrl+N,打開新建窗口,如下圖所示: 選擇Hibernate Reverse Engineering File(reveng.xml)點Next按鈕,進入選擇文件夾點Next按鈕,進入填寫信息,點Finish按鈕,在/arch4/src/java目錄下將會生成hibernate.reveng

11、.xml文件.3.3 HibernateTools的日常使用3.3.1 查看配置打開hibernate.reveng.xml文件即可在eclipse編輯區(qū)可以看到Hibernate reverse engineering editor 3.3.2 配置類型映射對應(yīng)源碼為:<type-mapping><sql-type jdbc-type="CHAR" hibernate-type="string"></sql-type><sql-type jdbc-type="SMALLINT" hibern

12、ate-type="int"></sql-type></type-mapping>注意:如果有特殊要求,需要生成和默認類型不一致的,則需要配置。否則無需配置。3.3.3 配置表的過濾選擇Table Filters選擇頁,配置如下所示的信息:對應(yīng)源碼為:<table-filter match-catalog="arch4demodb" match-schema="picclp"match-name="demo_.*"></table-filter><tabl

13、e-filter match-catalog="arch4demodb" match-schema="picclp"match-name="smc_.*"></table-filter>注意:通常配置時對match-name采用正則表達式配置.如上例中指表名前綴為demo_或smc_的表都將會生成代碼.如果明確不想對某些表處理,也可以通過增加 exclude="true" 屬性使其過濾這些表. 3.3.4 配置表和列選擇Table & Colums選擇頁,配置如下所示的信息: 3.3.4.

14、1 Table的映射 Catalog 對應(yīng)數(shù)據(jù)庫的名稱 Schema 對應(yīng)用戶名 Name對應(yīng)數(shù)據(jù)庫中的表名Class name項指定將生成的pojo的名稱,需要帶完整的包名點擊Add primary key按鈕手動配置主鍵。注意:使用Informix時,Schema必須設(shè)置正確,否則生成出來的類名可能有問題。通常表現(xiàn)為類名全小寫。 主鍵映射注意:Hibernate Tools這里有個問題,value不能配置值,應(yīng)該手動修改源碼。對應(yīng)源碼為:<primary-key><generator class="sequence"><par

15、am name="sequence">seq_demo_users</param></generator><key-column name="id" /></primary-key>注意:這里我們存在一個規(guī)則,當(dāng)沒有設(shè)置generator時,工具默認由sequence維護,其名稱為 “seq_表名”,如seq_demo_users。通常情況下不需要配置generator。 配置字段Name對應(yīng)數(shù)據(jù)庫中的字段名JDBC Type對應(yīng)JDBC中的類型,默認不填Property name項指定

16、將生成的pojo中的屬性名,區(qū)分大小寫。Hibernate Type對應(yīng)在Hibernate中的類型,默認不填注意:如果沒有特殊要求,如需要配置類型或改變屬性名字,則無需配置該字段,工具將默認生成如果填寫了Property name,生成的POJO屬性將按此命名,否則用配置文件中配置的大小寫命名,如果配置文件中不存在對應(yīng)此字段名的配置,將使用字段名作為變量名。目前要求的規(guī)則為:通過配置文件配置大小寫。對于CLOB字段,類型為org.springframework.orm.hibernate3.support.ClobStringType對于BLOB字段,類型為org.springframewo

17、rk.orm.hibernate3.support.BlobByteArrayType 外鍵關(guān)系如果表之間本身就建有外鍵關(guān)系,則無需配置,生成時將自動添加。如果表之間沒有建立外鍵關(guān)系,這可以通過配置在子表上實現(xiàn)。如demo_address中的userid對應(yīng)demo_users中的id,但是沒有建立外鍵關(guān)系,則可以通過如下配置實現(xiàn)。代碼如下:<table catalog="arch4demodb" schema="picclp" name="demo_address"><foreign-key fore

18、ign-table="demo_users"><column-ref local-column="userid" foreign-column="id" /><many-to-one/> </foreign-key></table>3.3.5 檢查源代碼選擇Source選擇頁,將看到如下信息:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-reverse-e

19、ngineering PUBLIC "-/Hibernate/Hibernate Reverse Engineering DTD 3.0/EN" " ><hibernate-reverse-engineering><table-filter match-catalog="arch4demodb" match-schema="picclp"match-name="demo_.*"></table-filter><table-filter match-catal

20、og="arch4demodb" match-schema="picclp"match-name="smc_.*"></table-filter><table-filter match-catalog="arch4demodb" match-schema="picclp"match-name="smc_.*" exclude="true"></table-filter><table catalog="

21、;arch4demodb" schema="picclp" name="demo_users"class="ins.helloworld.user.model.UtiUser"><primary-key><key-column name="id" /></primary-key></table><table catalog="arch4demodb" schema="picclp" name="d

22、emo_address"class="ins.helloworld.user.model.UtiAddress"><primary-key><key-column name="id" /></primary-key></table> </hibernate-reverse-engineering> 注意:檢查每一個table元素是否有primary-key子元素,沒有就必須添加.3.3.6 使用code gen工具生成POJO選擇如下圖所示的選項進入右鍵Hibernate Cod

23、e Generation選擇菜單New進入填寫如上圖所示的信息,選擇Exporters選擇頁 注意:需要選中Domain code(java),這樣才能在pojo中生成元數(shù)據(jù)信息,另外如果生成的文件名和類名或者生成文件中的屬性名的大小寫有問題,需要在HibernateTools-3.2.0.beta9a-sinosofteclipsepluginsorg.hibernate.eclipse_3.2.0.perties文件中修改或者添加對應(yīng)的大小寫轉(zhuǎn)換設(shè)定。 點Run按鈕,在/helloworld/src/java/ins/helloworl

24、d/user/model/目錄下將生成UtiUser.java文件.4 附錄4.1 Eclipse插件安裝方式4.1.1 簡便安裝把下載后的*.zip文件解壓,一般會看到plugins和features文件夾(features文件夾可能沒有),大家可以直接把plugins下的文件拷貝到eclipse的plugins文件夾下,如果有features文件夾, 則把features下的文件拷貝到eclipse的features文件夾下,重啟eclipse。4.1.2 用Links方式安裝 為了便于管理眾多插件,建議用links方式安裝各種eclipse插件.先把插件程序全部放在D:plug-in目錄

25、里(目錄可以自己設(shè)定),分別解壓。如Lomboz3.0.1.zip解壓成Lomboz3.0.1目錄,這個目錄包含一個plugins目錄,要先在Lomboz3.0.1目錄中新建一個子目錄eclipse,然后把plugins目錄移動到剛建立的eclipse 目錄中,即目錄結(jié)構(gòu)要是這樣的:D:plug-inLomboz3.0.1eclipseplugins    Eclipse 將會到指定的目錄下去查找 eclipsefeatures 目錄和eclipseplugins 目錄,看是否有合法的功能部件和(或)插件。也就是說

26、,目標(biāo)目錄必須包含一個 eclipse 目錄, 若已經(jīng)包含eclipseplugins目錄,則不需要建立eclipse目錄。如果找到,附加的功能部件和插件在運行期配置是將是可用的,如果鏈接文件是在工作區(qū)創(chuàng)建之后添加的,附加的功能部件和插件會作為新的配置變更來處理。     然后在 eclipse安裝目錄D:eclipse目錄中建立一個子目錄links,在links目錄中建立一個link文件,比如  LanguagePackFeature.link,改文件內(nèi)容為  path=D:/plu

27、g-in/LanguagePackFeature  即這個link文件要對應(yīng)一個剛解壓后的插件目錄。說明:1. 插件可以分別安裝在多個自定義的目錄中。2. 一個自定義目錄可以安裝多個插件。3. link文件的文件名及擴展名可以取任意名稱,比如ddd.txt。4. link文件中path=插件目錄的path路徑分隔要用或是/5. 在links目錄也可以有多個link文件,每個link文件中的path參數(shù)都將生效。6. 插件目錄可以使用相對路徑。   7. 可以在links目錄中

28、建立一個子目錄,轉(zhuǎn)移暫時不用的插件到此子目錄中,加快eclipse啟動。    8.  如果安裝后看不到插件,把eclipse 目錄下的configuration目錄中的org.eclipse.update文件夾刪除,重啟即可。4.1.3 插件安裝后的效果 插件安裝后,重啟eclipse,在工具欄將出現(xiàn)如下圖中紅色框所示的按鈕即表示安裝成功:4.2 對于POJO多對多關(guān)系的處理(待確認)因為現(xiàn)在hibernate-tools工具不支持many-to-many設(shè)置,對于這種情況,我們現(xiàn)在是采用手寫的方式進行,請參考下面的介紹:

29、假設(shè)有兩個表User(用戶)和Group(群) 其中,一個用戶可以加入多個群,一個群也可以包含多個用戶,這樣它們之間就構(gòu)成了多對多的關(guān)聯(lián)關(guān)系,建數(shù)據(jù)表時一般會加上一個關(guān)聯(lián)表users_groups.為了在hibernate中實現(xiàn),我們可以在User和Group類中加入JDK 5.0 Annotations.在User.java中加入:private Set<Group> groups;ManyToMany(targetEntity = User.class, cascade = CascadeType.PERSIST, CascadeType.MERGE)JoinTable(name = "users_groups", joinColumns = JoinColumn(name = "userid") , inverseJoinColumns = JoinCol

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論