亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

從頭到腳跟你解釋什么是Hibernate

2019-11-18 12:57:41
字體:
來源:轉載
供稿:網友

  Hibernate
  
  Hibernate是一個免費的開源java包,它使得與關系數據庫打交道變得十分輕松,就像您的數據庫中包含天天使用的普通Java對象一樣,同時不必考慮如何把它們從神秘的數據庫表中取出(或放回到數據庫表中)。它解放了您,使您可以專注于應用程序的對象和功能,而不必擔心如何保存它們或稍后如何找到它們。
  
  大多數應用程序都需要處理數據。Java應用程序運行時,往往把數據封裝為相互連接的對象網絡,但是當程序結束時,這些對象就會消失在一團邏輯中,所以需要有一些保存它們的方法。有時候,甚至在編寫應用程序之前,數據就已經存在了,所以需要有讀入它們和將其表示為對象的方法。手動編寫代碼來執行這些任務不僅單調乏味、易于出錯,而且會占用整個應用程序的很大一部分開發工作量。
  
  優秀的面向對象開發人員厭倦了這種重復性的勞動,他們開始采用通常的“積極”偷懶做法,即,創建工具,使整個過程自動化。對于關系數據庫來說,這種努力的最大成果就是對象/關系映射(ORM)工具。
  
  這類工具有很多,從昂貴的商業產品到內置于J2EE中的EJB標準。然而,在很多情況下,這些工具具有自身的復雜性,使得開發人員必須學習使用它們的具體規則,并修改組成應用程序的類以滿足映射系統的需要。由于這些工具為應付更加嚴格和復雜的企業需求而不斷發展,于是在比較簡單和常見的場景中,使用它們所面臨的復雜性反而蓋過了所能獲得的好處。這引起了一場革命,促進了輕量級解決方案的出現,而Hibernate就是這樣的一個例子。
  
  Hibernate的工作方式
  
  Hibernate不會對您造成妨礙,也不會強迫您修改對象的行為方式。它們不需要實現任何不可思議的接口以便能夠持續存在。惟一需要做的就是創建一份xml“映射文檔”,告訴Hibernate您希望能夠保存在數據庫中的類,以及它們如何關聯到該數據庫中的表和列,然后就可以要求它以對象的形式獲取數據,或者把對象保存為數據。與其他解決方案相比,它幾乎已經很完美了。
  
  由于本文只是一篇介紹性的文章,所以不會引入構建和使用Hibernate映射文檔的具體例子(我在《Hibernate: A Developer's Notebook》一書的頭幾章中已經介紹了一個例子)。此外,在網上和Hibernate的在線文檔中,還可以找到一些不錯的例子,請參見下面的“其他信息”部分。它實際上相當直觀。應用程序對象中的屬性以一種簡單而自然的方式與正確的數據庫結構相關聯。
  
  運行時,Hibernate讀取映射文檔,然后動態構建Java類,以便治理數據庫與Java之間的轉換。在Hibernate中有一個簡單而直觀的API,用于對數據庫所表示的對象執行查詢。要修改這些對象,(一般情況下)只需在程序中與它們進行交互,然后告訴Hibernate保存修改即可。類似地,創建新對象也很簡單;只需以常規方式創建它們,然后告訴Hibernate有關它們的信息,這樣就能在數據庫中保存它們。
  
  Hibernate API學習起來很簡單,而且它與程序流的交互相當自然。在適當的位置調用它,就可以達成目的。它帶來了很多自動化和代碼節省方面的好處,所以花一點時間學習它是值得的。而且還可以獲得另一個好處,即代碼不用關心要使用的數據庫種類(否則的話甚至必須知道)。我所在的公司就曾有過在開發過程后期被迫更換數據庫廠商的經歷。這會造成巨大的災難,但是借助于Hibernate,只需要簡單地修改Hibernate配置文件即可。
  
  這里的討論假定您已經通過創建Hibernate映射文檔,建立了一個關系數據庫,并且擁有要映射的Java類。有一個Hibernate“工具集”可在編譯時使用,以支持不同的工作流。例如,假如您已經擁有Java類和映射文檔,Hibernate可以為您創建(或更新)必需的數據庫表?;蛘?,僅僅從映射文檔開始,Hibernate也能夠生成數據類?;蛘撸梢苑聪蛟O計您的數據庫和類,從而擬定映射文檔。還有一些用于Eclipse的alpha 插件,它們可以在IDE中提供智能的編輯支持以及對這些工具的圖形訪問。
  
  假如您使用的是Hibernate 2環境,這些工具鮮有提供,但是存在可用的第三方工具。
  
  使用Hibernate的場合
  
  既然Hibernate看起來如此靈活好用,為什么還要使用其他的工具呢?下面有一些場景,可以幫助您做出判定(或許通過提供一些比較和上下文,可以有助于鑒別非常適用Hibernate的場合)。
  
  假如應用對于數據存儲的需要十分簡單——例如,您只想治理一組用戶優先選擇——您根本不需要數據庫,更不用說一個優秀的對象-關系映射系統了(即使它也如Hibernate這般易于使用)!從Java 1.4開始,有一個標準的Java PReferences API可以很好地發揮這個作用。(在ONJava文章中可以找到有關Preferences API的更多信息。)
  
  對于熟悉使用關系數據庫和了解如何執行完美的SQL查詢與企業數據庫交互的人來說,Hibernate似乎有些礙手礙腳,這就像帶有動力和自動排擋的快艇車會使注重性能的賽車駕駛員不耐煩一樣。假如您屬于這種人,假如您所在的項目團隊擁有一個強大的DBA,或者有一些存儲過程要處理,您可能想研究一下iBATIS。Hibernate的創建者本身就把iBATIS當作是另一種有趣的選擇。我對它很有愛好,因為我們曾為一個電子商務站點開發了一個類似的系統(其功能更為強大),而且從那時到現在,我們已經在其他環境中使用過它,盡管在發現Hibernate之后,在新項目中我們通常更喜歡使用Hibernate。您可以認為,以SQL為中心的解決方案(比如iBATIS)是“反向的”對象/關系映射工具,而Hibernate是一個更為傳統的ORM。
  
  當然,還有其他的外部原因會導致采用另外的方法。比如,在一個企業環境中,必須使用成熟的EJB架構(或者其他的一些非普通對象映射系統)??梢詾樘峁┳约旱臄祿鎯ぞ叩钠脚_量身定做代碼,比如Mac OS X's Core Data。使用的可能是像XML DTD這樣的存儲規范,而它根本不涉及關系數據庫。
  
  但是,假如您使用的是富對象模型,而且想要靈活、輕松且高效地保存它(無論您是否正要開始或已經決定使用關系數據庫,只要這是一個選擇——而且存在可用的優秀免費數據庫,比如MySQL,或可嵌入Java的HSQLDB,它就應該始終是一個選擇),那么Hibernate很可能就是您理想的選擇。您可能會驚奇于節省的時間之多,以及您將會多么地喜歡使用它。
  
  其他信息
  
  Hibernate項目有大量的在線文檔,可以幫助您找準方向,快速開始使用。
  
  權威性的參考資料是Hibernate in Action,作者是Christian Bauer和Gavin King,都是Hibernate的創建者。該書全面而基礎地講述了Hibernate包的功能和正確的使用方法。
  
  閱讀我的書Hibernate: A Developer's Notebook,也是一種快速上手的好方法。它直接但具體地講述了如何在Java項目中設置Hibernate,以及如何使用它的一些最重要的功能。其中的代碼示例普遍基于Hibernate和HSQLDB的早期版本,所以假如您想不加改動地使用它們,需要使用這兩種軟件的正確版本。無論如何,基本的概念是正確的,而且我希望能夠盡快地針對Hibernate 3更新本書。
  
  另一本有趣的書是Better Faster Lighter Java,作者是BrUCe Tate 和Justin Gehtland。書中給出了一些實用方法,可以以合理的方式完成實際的項目,這也是它流行的原因之一。它在如何評估和使用(或否決)可用的Java技術方面給出了合理建議,并作為正確方法的例子提到了Hibernate和Spring。
  
  最后,“Working with Hibernate in Eclipse”(它預先提到了更強大的新的alpha版的Hibernate 3工具)中具體講述了如何將一個叫做Hibernate Synchronizer的Eclipse插件與Hibernate一起使用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区av在线播放| 欧美专区福利在线| 亚洲美女中文字幕| 亚洲欧洲自拍偷拍| 国产成人精品免高潮费视频| 亚洲美女精品久久| 亚洲精品视频播放| 亚洲成**性毛茸茸| 浅井舞香一区二区| 久久99国产精品久久久久久久久| 亚洲天堂男人天堂女人天堂| 亚洲精品视频网上网址在线观看| 欧美日韩福利在线观看| 国内伊人久久久久久网站视频| 亲子乱一区二区三区电影| 国产性色av一区二区| 久久久噜噜噜久久中文字免| 欧美极品欧美精品欧美视频| 91av成人在线| 性色av一区二区三区红粉影视| 亚洲精品成人久久电影| 尤物九九久久国产精品的特点| 日韩精品在线视频美女| 97色伦亚洲国产| 91成人天堂久久成人| 亚洲国产精品久久| 国精产品一区一区三区有限在线| 国产精品永久免费在线| 91亚洲精品视频| 不卡av电影在线观看| 另类专区欧美制服同性| www.国产精品一二区| 疯狂欧美牲乱大交777| 久久69精品久久久久久国产越南| 久久亚洲精品视频| 欧美激情啊啊啊| 成人欧美一区二区三区在线| 中文字幕精品一区二区精品| 国产69精品久久久久99| 国产激情视频一区| 国产主播欧美精品| 国产91色在线|| 久久视频精品在线| 日韩av色在线| 中文字幕亚洲专区| 日本不卡免费高清视频| 国产精品免费观看在线| 国模精品一区二区三区色天香| 欧美日韩亚洲一区二区三区| 欧美精品在线看| 亚洲美女精品久久| 久久久久久久久久国产精品| 国产精品国产自产拍高清av水多| 亚洲精品一区久久久久久| 精品精品国产国产自在线| 九九热最新视频//这里只有精品| 日本精品久久中文字幕佐佐木| 日韩电影中文字幕在线观看| 久久久久久久久久久成人| 国产精品久久激情| 国内精品免费午夜毛片| 色婷婷av一区二区三区久久| 川上优av一区二区线观看| 午夜精品久久久久久久99热| 成人午夜在线视频一区| 欧美激情精品久久久久久久变态| 亚洲精品中文字幕av| 日韩在线观看免费高清| 色老头一区二区三区| 欧美激情亚洲激情| 国产精品久久网| 亚洲自拍中文字幕| 日韩中文字幕视频在线| 国产精品视频精品视频| 国产精品久久久久久久久久新婚| 国产一区二区三区视频在线观看| 国产一区二区三区在线播放免费观看| 成人黄色午夜影院| 国产日韩欧美在线视频观看| 亚洲在线视频福利| 欧美日韩国产综合视频在线观看中文| 亚洲乱码国产乱码精品精天堂| 国产一区二区在线免费视频| 精品激情国产视频| 亚洲有声小说3d| 日韩极品精品视频免费观看| 成人做爰www免费看视频网站| 在线电影av不卡网址| 欧美成人免费在线视频| 成人黄色片在线| 欧美另类高清videos| 国产在线视频2019最新视频| 日韩中文在线中文网在线观看| 日韩中文综合网| 懂色aⅴ精品一区二区三区蜜月| 欧美限制级电影在线观看| 国产91九色视频| 97av在线视频免费播放| 欧美激情综合色综合啪啪五月| 欧美成人激情图片网| 国产久一一精品| 日韩在线www| 欧美成人高清视频| 亚洲bt欧美bt日本bt| 91在线观看免费观看| 久久色免费在线视频| 国产精品第一区| 日韩国产激情在线| 国产成人精品午夜| 欧美性极品xxxx做受| 98精品国产自产在线观看| 91精品视频大全| 色偷偷av一区二区三区乱| 另类少妇人与禽zozz0性伦| 欧美激情一区二区三区久久久| 日韩在线精品视频| 97视频在线观看网址| www.亚洲一二| 亚洲精品丝袜日韩| 欧美日韩精品中文字幕| 国产精品露脸自拍| 亚洲午夜未满十八勿入免费观看全集| 亚洲色图欧美制服丝袜另类第一页| 欧美国产日韩一区| 日本高清视频一区| 日日骚久久av| www.日韩av.com| 日韩精品极品在线观看| 视频一区视频二区国产精品| 欧美日韩国产精品一区| 欧美美女操人视频| 欧美另类精品xxxx孕妇| 精品国产老师黑色丝袜高跟鞋| 国产精品白嫩初高中害羞小美女| 91视频88av| 亚洲人成伊人成综合网久久久| 亚洲欧美色图片| 亚洲视频在线观看免费| 57pao国产精品一区| 久久久www成人免费精品| 在线午夜精品自拍| 国产成人福利视频| 欧美成人免费全部| 国产69精品久久久久99| 日韩在线免费观看视频| 亚洲第一男人天堂| 在线观看国产精品日韩av| 亚洲福利视频久久| 久久99精品视频一区97| 91美女福利视频高清| 午夜免费在线观看精品视频| 国产精品一区二区3区| 国产精品欧美激情| 国产精品亚洲片夜色在线| 国产视频亚洲精品| 国产精品专区一| 欧美日韩亚洲精品一区二区三区| 国产午夜精品视频| 91国内揄拍国内精品对白| 国产+人+亚洲| 欧美专区在线视频| 538国产精品一区二区在线| 欧洲亚洲在线视频| 最新国产精品拍自在线播放|