煮酒論英雄,漫談Java數據庫存取技術
關鍵字: Java 數據庫 存取技術IT技術日新月異,新技術的出現令人目不暇接,似乎每一天都在產生著新名詞。不過歸根結底IT所要實現的價值不外乎數據收集,然后再以客戶希望的形式展示給客戶而已。因此數據存取技術也就成了一個永恒的話題。而在Java這個開放的
關鍵字:
Java數據庫存取技術IT技術日新月異,新技術的出現令人目不暇接,似乎每一天都在產生著新名詞。不過歸根結底IT所要實現的價值不外乎數據收集,然后再以客戶希望的形式展示給客戶而已。因此數據存取技術也就成了一個永恒的話題。而在Java這個開放的世界里,數據庫存取技術是五花八門,種類繁多。我們也來侃侃Java世界里主流的數據庫存取技術。
首先列出英雄榜
1. JDBC直接訪問數據庫
2. EJB entity bean.
3. JDO技術。
4. 第三方O/R工具,如目前大紅大紫的Hibernate, 其它如Castor, Toplink.
先說說這個歷史最為悠久的JDBC吧。從Java誕生的那天起,這位仁兄就開始登上歷史舞臺了。Java能有今天這么風光,JDBC可以說是功不可末。一路走來,如今已是JDBC3.0了。在沒有JDBC的時候,訪問數據庫那是八仙過海,各顯神通,各家數據庫廠商都有自己的一套API, 苦就苦了
開發人員了。換了個數據庫,那個程序要改是面目全非。JDBC規范的出臺,向世界宣告從此有了訪問關系數據庫的標準通用接口了。JDBC標準獲得了幾乎所有數據庫廠商的支持,好像還真難找到這么一個數據庫,它是沒有JDBC 支持的。JDBC規范一經發布,獲得了空前成功,很快成為
java訪問數據庫的標準。JDBC的成功在于它的規范統一標準的接口,只需要掌握標準的
SQL語言就可以訪問各種不同的數據庫了。這種數據庫間的可移植性和Java一直高喊的口號Compile Once, Run everywhere遙相呼應。JDBC今天還是java訪問數據庫的基石,CMP, JDO, Hibernate 說到底只是更好的封裝了JDBC, 提供了更為上層的更為強大的接口而已。然后說說JDBC直接訪問數據庫的方式來實現java 持久性。
這種方式相對于CMP來說比較簡單直接,特別是對于小型應用十分方便。比如,我要寫一個簡單的留言版程序,就沒有必要session bean ,entity bean ,又是home接口又是遠程接口,一層層調了吧。直接JDBC,寫SQL語句了事。和其它持久化技術相比,JDBC直接訪問數據庫的方式需要
程序員操心的事情多了一些,你得自己關心transaction, 自己關心連接池,你得寫大量的get set方法,把SQL select出來的值一個一個塞到你的java object中,或者把java object的值一個一個給取出來,用SQL insert 到數據庫,完全手動進行O/R mapping。為了克服這些缺點,CMP, JDO等等開始陸續登上歷史舞臺。
原文轉自:http://www.anti-gravitydesign.com