程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 如何高效使用JavaEE ORM框架

如何高效使用JavaEE ORM框架

編輯:J2EE
        雖然Java領域有無數的ORM框架,如Hibernate,iBatis,TopLink,JDO,JPA…… 但是這些ORM框架基本上大同小異。很多初學者對JDBC的復雜性望而卻步,就簡單認為使用ORM就會省時省力,結果恰恰相反,任何好的框架都是給專家准 備的,任何急功近利試圖偷懶的方法往往適得其反。要正確使用ORM還真不是一件簡單的事情。本文僅簡單整理一下ORM的原理,基本用法,以及如何避免各種 陷阱的基本編程原則。

        ORM的原理

        先說ORM的實現原理。其實,要實現JavaBean的屬性到數據庫表的字段的映射,任何ORM框架不外乎是讀某個配置文件把JavaBean的屬 性和數據庫表的字段自動關聯起來,當從數據庫Query時,自動把字段的值塞進JavaBean的對應屬性裡,當做INSERT或UPDATE時,自動把 JavaBean的屬性值綁定到SQL語句中。但是,幾乎所有的ORM都提供“按需讀取”的功能,比如一個User有id,name,email和 address這4個字段,但是address字段很少用,於是ORM只讀取前3個字段,直到調用User的getAddress()方法時,才去數據庫 中讀取address的值。這個功能顯然不能通過User的get/set完成,因此,ORM需要采用某種方式生成一個User類的子類,並且覆寫get /set方法,這樣,才能在調用get方法時有機會從數據庫中讀取。類似的對User的修改檢測也是這樣實現的。

        兩種增強的方式

        ORM為我們自己的JavaBean實現子類的方法很多,這個過程簡單稱之為“增強”,基本上有兩種方法:Hibernate使用CGLIB在加載 我們的User類時動態創建了一個子類,而JDO則要求編譯完User類後再利用它提供的工具對User類進行改造,以便實現JDO需要的各種接口。請注意:就是這種極其變態的設計導致了使用JDO的極大困難,在我們編譯完源碼後,還需要額外執行一個增強命令,或者額外編寫Ant任務,極大地影響了快速開發和單元測試,所以,凡是采用靜態生成持久類的ORM,要在第一時間直接排除,切記!

        本文來源於Csdn Java專家博客,全文地址:

        http://blog.csdn.Net/asklxf/archive/2009/09/14/4552486.ASPx

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved