欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Hibernate O/R映射三大基本定則

Hibernate O/R映射三大基本定則 閱讀次數9025

出處 不詳     



1. 引言
在Java環(huán)境下,有多種對象關(guān)系映射方法,如實(shí)體Bean、OJB、JDO、JDBC等。Hibernate是一種新的O/R映射工具,它不僅提供了從Java類(lèi)到數據表的映射,也提供了數據查詢(xún)和恢復等機制。Hibernate非常簡(jiǎn)單易學(xué),目前國內有很多同行已經(jīng)或正在用Hibernate開(kāi)發(fā)實(shí)施項目;但Hibernate有很多規則不為人知或應用甚少。本文的目的就是將這些規則歸納總結,希望對您的開(kāi)發(fā)和設計有益。

首先聲明,本文是Hibernate入門(mén)級文章,高手請不用往下看了。

2. 基本定則

定則一:數據庫配置文件名稱(chēng)可以不是Hibernate.properties或Hibernate.cfg.xml

由于Hibernate官方文檔(本文指www.hibernate.org的文檔)的影響,很多Hibernate開(kāi)發(fā)者誤以為系統一定要有名稱(chēng)為Hibernate.properties或Hibernate.cfg.xml的文件,而且一定要放在classes的根目錄下。實(shí)際上,該文件只是一般的配置文件,名稱(chēng)可以自己取,文件位置可以自己定,而且在多數據庫環(huán)境下,可以有多個(gè)配置文件,使得程序可以連接多個(gè)數據庫。只是您在創(chuàng )建會(huì )話(huà)工廠(chǎng)時(shí)需要特殊處理,代碼示例如下:

//配置文件名稱(chēng)

protected static String CONFIG_FILE = "my_hibernate.config";

//配置文件目錄,可以考慮在該目錄下存放系統所有配置文件,此處使用虛擬機參數

String configPath = System.getProperty("my.config");

//創(chuàng )建會(huì )話(huà)工廠(chǎng)

sessionFactory =( new Configuration().configure(new File(configPath+File.separator+CONFIG_FILE))) .buildSessionFactory();



定則二:小型項目中,.hbm.xml文件可以合并到一個(gè)文件中

同樣由于Hibernate官方文檔的影響,很多Hibernate開(kāi)發(fā)者誤以為Hibernate的對象關(guān)系映射一定要一個(gè)表對應一個(gè)對象,并將映射文件和對象文件放在同一目錄下。實(shí)際上,該模式是為規范性考慮而設計的,因為在多人參與的項目中,多人要維護同一文件容易產(chǎn)生沖突;當項目比較小時(shí),配置文件的維護人員少,我們完全可以將.hbm.xml文件合并到一個(gè)或者幾個(gè)文件中。依據作者本人的項目設計開(kāi)發(fā)經(jīng)驗,最好是項目中有幾人同時(shí)從事O/R映射和持久工作,則設定幾個(gè).hbm.xml文件,每人維護一個(gè)。當然,為了便于分類(lèi)和管理,每人的工作應該按邏輯劃分。

大型項目中的文件配置示例如下:

<hibernate-configuration>

<session-factory>

<!—映射文件分散 -->

<mapping resource="com/hongsoft/test/ persistence/Cat.hbm.xml"/>

<mapping resource="com/hongsoft/test/ persistence/Animal.hbm.xml"/>

</session-factory>

</hibernate-configuration>

小型項目中的文件配置示例如下:

<hibernate-configuration>

<session-factory>

<!—映射文件集中 -->

<mapping resource="res_hibernate_map.xml"/>

</session-factory>

</hibernate-configuration>

要注意的是, 從對Hibernate源代碼的分析可知,指定映射文件時(shí),不能用絕對目錄,只能用相對目錄;而且,系統以classes根目錄為當前目錄。



定則三:對象關(guān)系映射是以.hbm.xml文件為基準的,而不是以PO文件為基準

該定律的意思是:系統啟動(dòng)檢查您的對象關(guān)系映射是否正確時(shí),是以.hbm.xml為基準來(lái)進(jìn)行檢查的;對象文件的property可以比映射文件的property多,但不能少。如果您有如下的映射:

<class name="com.hongsoft.test.User" table="res_user">

<id name="id" column="id" type="long" unsaved-value="any">

<generator class="assigned">

</generator>

</id>

<property name="name"/>

<property name="loginName"/>

<property name="passwd"/>

</class>

系統啟動(dòng),檢查數據庫和其他配置正確后,將以該文件為基準,首先檢查User對象中有無(wú)id屬性和對應的get/set方法,如果沒(méi)有則報錯,如果有且正確則檢查有無(wú)name屬性和對應的get/set方法……,直到文件結束。要注意的是,如果屬性為name,則get方法名稱(chēng)必須為getName(),set方法名稱(chēng)必須為setName(),否則會(huì )報錯。

如果User對象除了有id,name,loginName, passwd四個(gè)屬性和對應的方法,還有其它的屬性和方法,會(huì )報錯嗎?不會(huì ),因為對象關(guān)系映射是以.hbm.xml文件為基準的,而不是以PO文件為基準。您在項目中可以充分利用該特點(diǎn),實(shí)現您自己的比較特殊的需求。例如,您可以在User對象中加入updatedPasswd表示更改后的口令,由此構造在表示層要使用的FormBean和在業(yè)務(wù)層要使用的ValueObject。當然,這樣做也有缺點(diǎn),需要根據您的實(shí)際情況而定。

3. 總結
上面是作者對Hibernate映射的容易理解錯誤的知識點(diǎn)的歸納總結,希望對您有幫助。如果您發(fā)現有錯誤或有自己的觀(guān)點(diǎn),歡迎討論。

    

 
 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Hibernate深入理解
Hibernate學(xué)習筆記1
Hibernate 筆記2 關(guān)于配置文件和表映射
hibernate介紹與動(dòng)手入門(mén)
Spring對hibernate配置文件hibernate.cfg.xml的集成,來(lái)取代hibernate.cfg.xml的配置
CSDN 文檔中心:Hibernate訪(fǎng)問(wèn)多個(gè)數據庫
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久