andy-j2ee  
          JAVA
          公告
          • 在夜深人靜的時(shí)候,偶彈起心愛(ài)的土琵琶,唱起那動(dòng)人的歌謠(柯受良-《大哥》):偶寫了代碼好多年,偶不愛(ài)冰冷的床沿,不要逼偶想念,不要逼偶流淚,偶會(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)論排行榜

           
                  說(shuō)到hibernate,英文意思:冬眠。給我印象最深的是孫文琴老師的那本hibernate深入詳解分頁(yè)上的那句話"let you java object hibernate in the relation database"。其實(shí)后邊學(xué)完了再回頭看這句話的時(shí)候就發(fā)現(xiàn)其實(shí)這句話說(shuō)的很形象,它深刻的反映了hibernate在軟件開(kāi)發(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)換。從效果上說(shuō),它其實(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ā)展起來(lái)的,而關(guān)系數(shù)據(jù)庫(kù)則是從數(shù)學(xué)理論發(fā)展而來(lái)的,兩套理論存在顯著的區(qū)別。為了解決這個(gè)不匹配的現(xiàn)象,對(duì)象關(guān)系映射技術(shù)應(yīng)運(yùn)而生。

                  簡(jiǎn)單的說(shuō):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)品中,如:TorqueOJBHibernateTopLinkCastor JDOTJDOActive RecordNHibernateADO.NET Entity Framework 等。
                  以上是維基百科中解釋。所的很官僚,就是說(shuō)的我們大家一般的人不太能理解。我個(gè)人的理解就是:對(duì)我們這些對(duì)JDBC常用操作非常厭倦的人來(lái)了個(gè)封裝,然后給我們各種常用的接口,而且讓我們感覺(jué)不到我們?cè)诓倏v數(shù)據(jù)庫(kù),而只是在調(diào)人家給的接口,這無(wú)形中讓我們感覺(jué)到很舒服,很愜意。
                  hibernate同樣是ORM工具,那么它給我們提供了那些接口呢?讓我列舉幾個(gè):
                  Session、負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句。)。
                  SessionFactory、負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式
                  Transaction、 負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開(kāi)發(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 安多 閱讀(297) 評(píng)論(0)  編輯  收藏 所屬分類: S2SH Learning
           
          Copyright © 安多 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 孟津县| 望谟县| 曲阜市| 临夏市| 长垣县| 乌鲁木齐县| 楚雄市| 永胜县| 新营市| 十堰市| 湟中县| 南和县| 崇仁县| 望奎县| 隆子县| 化隆| 伊宁市| 子长县| 蒙自县| 京山县| 武冈市| 常山县| 莆田市| 深州市| 若尔盖县| 红安县| 都安| 长寿区| 孟津县| 乌拉特后旗| 乌鲁木齐市| 玉山县| 炉霍县| 星子县| 安仁县| 民丰县| 万荣县| 萝北县| 辉南县| 余干县| 庐江县|