<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-208  評論-469  文章-30  trackbacks-0

    首先這個題目有點嘩眾取寵,呵呵,故意的.

    參考了網(wǎng)上許多前輩的見解,然后加了自己一點點的理解.如果有什么板磚,歡迎來拍 .

    簡介

    Hibernate 是當(dāng)前最流行的 O/R mapping 框架,當(dāng)前版本是 3.05 。它出身于 sf.net ,現(xiàn)在已經(jīng)成為 Jboss 的一部分了

    iBATIS 是另外一種優(yōu)秀的 O/R mapping 框架,當(dāng)前版本是 2.0 。目前屬于 apache 的一個子項目了。

    相對 Hibernate O/R ”而言, iBATIS 是一種“ Sql Mapping ”的 ORM 實現(xiàn)。

    Hibernate 對數(shù)據(jù)庫結(jié)構(gòu)提供了較為完整的封裝, Hibernate O/R Mapping 實現(xiàn)了 POJO 和數(shù)據(jù)庫表之間的映射,以及 SQL 的自動生成和執(zhí)行。程序員往往只需定義好了 POJO 到數(shù)據(jù)庫表的映射關(guān)系,即可通過 Hibernate 提供的方法完成持久層操作。程序員甚至不需要對 SQL 的熟練掌握, Hibernate/OJB 會根據(jù)制定的存儲邏輯,自動生成對應(yīng)的 SQL 并調(diào)用 JDBC 接口加以執(zhí)行。

    iBATIS 的著力點,則在于 POJO SQL 之間的映射關(guān)系。也就是說, iBATIS 并不會為程序員在運行期自動生成 SQL 執(zhí)行。具體的 SQL 需要程序員編寫,然后通過映射配置文件,將 SQL 所需的參數(shù),以及返回的結(jié)果字段映射到指定 POJO

    使用 iBATIS 提供的 ORM 機制,對業(yè)務(wù)邏輯實現(xiàn)人員而言,面對的是純粹的 Java 對象,

    這一層與通過 Hibernate 實現(xiàn) ORM 而言基本一致,而對于具體的數(shù)據(jù)操作, Hibernate 會自動生成 SQL 語句,而 iBATIS 則要求開發(fā)者編寫具體的 SQL 語句。相對 Hibernate 而言, iBATIS SQL 開發(fā)的工作量和數(shù)據(jù)庫移植性上的讓步,為系統(tǒng)設(shè)計提供了更大的自由空間。

    二者的對比:

    1. ? iBATIS 非常簡單易學(xué), Hibernate 相對較復(fù)雜,門檻較高。

    2. ? 二者都是比較優(yōu)秀的開源產(chǎn)品

    3. ? 當(dāng)系統(tǒng)屬于二次開發(fā) , 無法對數(shù)據(jù)庫結(jié)構(gòu)做到控制和修改 , iBATIS 的靈活性將比 Hibernate 更適合

    4. ? 系統(tǒng)數(shù)據(jù)處理量巨大,性能要求極為苛刻,這往往意味著我們必須通過經(jīng)過高度優(yōu)化的 SQL 語句(或存儲過程)才能達(dá)到系統(tǒng)性能設(shè)計指標(biāo)。在這種情況下 iBATIS 會有更好的可控性和表現(xiàn)。

    5. ? iBATIS 需要手寫 sql 語句,也可以生成一部分, Hibernate 則基本上可以自動生成,偶爾會寫一些 Hql 。同樣的需求 ,iBATIS 的工作量比 Hibernate 要大很多。類似的,如果涉及到數(shù)據(jù)庫字段的修改, Hibernate 修改的地方很少,而 iBATIS 要把那些 sql mapping 的地方一一修改。

    6. ? 以數(shù)據(jù)庫字段一一對應(yīng)映射得到的 PO Hibernte 這種對象化映射得到的 PO 是截然不同的,本質(zhì)區(qū)別在于這種 PO 是扁平化的,不像 Hibernate 映射的 PO 是可以表達(dá)立體的對象繼承,聚合等等關(guān)系的,這將會直接影響到你的整個軟件系統(tǒng)的設(shè)計思路。

    7. ? Hibernate 現(xiàn)在已經(jīng)是主流 O/R Mapping 框架,從文檔的豐富性,產(chǎn)品的完善性,版本的開發(fā)速度都要強于 iBATIS

    8. ? 最關(guān)鍵的一句話是 iBATIS 的作者說的:

    If you are starting a new project and you're in full control of your object model and database design, Hibernate is a good choice of O/R tool.

    If you are accessing any 3rd party databases (e.g. vendor supplied), or you're working with a legacy database, or even just a really poorly designed database, then an O/R mapper might not be capable of handling the situation. That's were an SQL Mapper comes in handy

    ?

    結(jié)論:

    結(jié)論:

    Hibernate 和iBATIS可以說是互相補充,共同發(fā)展的關(guān)系.具體你想用什么要看實際情況.如果看了上面的文字還是拿不定注意,那就Just to try it.實踐是檢驗真理的唯一標(biāo)準(zhǔn).鞋合不合適,只有試了才知道

    posted on 2007-03-23 23:17 EricWong 閱讀(354) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 久久亚洲精品无码播放| 久久亚洲精品成人无码网站| 国产99视频精品免费视频76| 亚洲国产高清人在线| 西西大胆无码视频免费| 国产精品美女久久久免费| 亚洲欧洲自拍拍偷综合| 又色又污又黄无遮挡的免费视| 国内精品久久久久影院免费| 亚洲色少妇熟女11p| 亚洲愉拍99热成人精品热久久| **毛片免费观看久久精品| 亚洲youwu永久无码精品| 亚洲国产精品无码专区在线观看| av大片在线无码免费| caoporm超免费公开视频| 亚洲最大的视频网站| 国产日产亚洲系列最新| 国产免费不卡v片在线观看 | 成人免费观看一区二区| 一级做a爰全过程免费视频毛片| 亚洲理论精品午夜电影| 国产亚洲一区二区三区在线不卡| 青青青免费国产在线视频小草| 久久久受www免费人成| 亚洲中文字幕无码久久2020| 亚洲AV综合色区无码另类小说| 国产免费人成在线视频| 免费三级毛片电影片| 免费一级毛片在线播放视频| 极品美女一级毛片免费| 亚洲国产成人精品无码区在线秒播 | 亚洲视频在线免费看| 成人片黄网站色大片免费观看cn| 亚洲精品无播放器在线播放 | 国产AV日韩A∨亚洲AV电影 | 亚洲色欲www综合网| 亚洲精品国产精品乱码视色| 免费一级毛片一级毛片aa| 毛片免费视频在线观看| 999久久久免费精品国产|