andy-j2ee  
          JAVA
          公告
          • 在夜深人靜的時(shí)候,偶彈起心愛的土琵琶,唱起那動(dòng)人的歌謠(柯受良-《大哥》):偶寫了代碼好多年,偶不愛冰冷的床沿,不要逼偶想念,不要逼偶流淚,偶會(huì)翻。
          日歷
          <2011年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345
          統(tǒng)計(jì)
          • 隨筆 - 19
          • 文章 - 1
          • 評(píng)論 - 1
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿

          隨筆分類(5)

          隨筆檔案(19)

          文章分類(1)

          文章檔案(1)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

           
                  說到hibernate,英文意思:冬眠。給我印象最深的是孫文琴老師的那本hibernate深入詳解分頁(yè)上的那句話"let you java object hibernate in the relation database"。其實(shí)后邊學(xué)完了再回頭看這句話的時(shí)候就發(fā)現(xiàn)其實(shí)這句話說的很形象,它深刻的反映了hibernate在軟件開發(fā)中的重要作用:ORM(object relation mapping 對(duì)象關(guān)系映射),那么要學(xué)習(xí)hibernate首先需要了解的就是ORM。
                  所謂ORM的解釋,可以從維基百科中查到:
                  對(duì)象關(guān)系映射(Object Relational Mapping,簡(jiǎn)稱ORM,或O/RM,或O/R mapping),是一種程式設(shè)計(jì)技術(shù),用于實(shí)現(xiàn)面向?qū)ο?/font>編程語(yǔ)言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換。從效果上說,它其實(shí)是創(chuàng)建了一個(gè)可在編程語(yǔ)言里使用的“虛擬對(duì)象數(shù)據(jù)庫(kù)”。如今已有很多免費(fèi)和收費(fèi)的ORM產(chǎn)品,而有些程序員更傾向于創(chuàng)建自己的的ORM工具。

                  面向?qū)ο笫菑?a class="mw-redirect" title="軟件工程" href="/wiki/%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B">軟件工程基本原則(如耦合、聚合、封裝)的基礎(chǔ)上發(fā)展起來的,而關(guān)系數(shù)據(jù)庫(kù)則是從數(shù)學(xué)理論發(fā)展而來的,兩套理論存在顯著的區(qū)別。為了解決這個(gè)不匹配的現(xiàn)象,對(duì)象關(guān)系映射技術(shù)應(yīng)運(yùn)而生。

                  簡(jiǎn)單的說:ORM相當(dāng)于中繼數(shù)據(jù)。具體到產(chǎn)品上,例如下邊的ADO.NET Entity Framework。DLINQ中實(shí)體類的屬性[Table]就算是一種中繼數(shù)據(jù)。

          對(duì)象關(guān)系映射成功運(yùn)用在不同的面向?qū)ο蟪志脤赢a(chǎn)品中,如:Torque,OJB,HibernateTopLinkCastor JDO,TJDOActive RecordNHibernateADO.NET Entity Framework 等。
                  以上是維基百科中解釋。所的很官僚,就是說的我們大家一般的人不太能理解。我個(gè)人的理解就是:對(duì)我們這些對(duì)JDBC常用操作非常厭倦的人來了個(gè)封裝,然后給我們各種常用的接口,而且讓我們感覺不到我們?cè)诓倏v數(shù)據(jù)庫(kù),而只是在調(diào)人家給的接口,這無形中讓我們感覺到很舒服,很愜意。
                  hibernate同樣是ORM工具,那么它給我們提供了那些接口呢?讓我列舉幾個(gè):
                  Session、負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見的SQL語(yǔ)句。)。
                  SessionFactory、負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式
                  Transaction、 負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼
                  Query、Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用HQL語(yǔ)言或SQL語(yǔ)句兩種表達(dá)方式
                  Configuration、負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象。
                  

          posted on 2011-10-06 21:35 安多 閱讀(293) 評(píng)論(0)  編輯  收藏 所屬分類: S2SH Learning
           
          Copyright © 安多 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 旺苍县| 舞钢市| 宁武县| 荆门市| 三河市| 年辖:市辖区| 民县| 库车县| 长武县| 苗栗市| 菏泽市| 岳阳市| 安陆市| 全州县| 铜梁县| 建始县| 五莲县| 海宁市| 深州市| 蒙自县| 开封县| 通道| 广东省| 嵊州市| 南华县| 溆浦县| 司法| 洪江市| 澄城县| 股票| 丰城市| 兴业县| 甘孜县| 安泽县| 二连浩特市| 如皋市| 淄博市| 获嘉县| 庆云县| 长泰县| 宜阳县|