国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Hibernate O/R映射三大基本定則

2019-11-18 11:25:20
字體:
來源:轉載
供稿:網友

轉貼自/:http://www.yourblog.org/Data/20044/34092.Html

                      發表:2004-4-2 10:40:43  出處:你的博客網(yourblog.org)

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

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

2. 基本定則

定則一:數據庫配置文件名稱可以不是Hibernate.PRoperties或Hibernate.cfg.xml

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

//配置文件名稱

protected static String CONFIG_FILE = "my_hibernate.config";

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

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

//創建會話工廠

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



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

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

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

<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源代碼的分析可知,指定映射文件時,不能用絕對目錄,只能用相對目錄;而且,系統以classes根目錄為當前目錄。


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

該定律的意思是:系統啟動檢查您的對象關系映射是否正確時,是以.hbm.xml為基準來進行檢查的;對象文件的property可以比映射文件的property多,但不能少。假如您有如下的映射:

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

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

<generator class="assigned">


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德阳市| 吉木萨尔县| 桃源县| 山东| 长泰县| 龙海市| 平远县| 辰溪县| 铁岭县| 封丘县| 资源县| 泾阳县| 台北县| 普定县| 高邮市| 青岛市| 屯留县| 西乡县| 渑池县| 永仁县| 宿迁市| 湄潭县| 昂仁县| 大宁县| 内乡县| 万安县| 平武县| 浦江县| 建始县| 谷城县| 井研县| 色达县| 泸溪县| 大渡口区| 资阳市| 大城县| 广丰县| 正阳县| 沙田区| 张掖市| 山阴县|