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

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

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

    心的方向

    新的征途......
    posts - 75,comments - 19,trackbacks - 0

    Hibernate??VS? iBATIS

    轉之ewolf的工作專欄

    簡介

    Hibernate 是當前最流行的 O/R mapping 框架,當前版本是 3.05 。它出身于 sf.net ,現在已經成為 Jboss 的一部分了

    iBATIS 是另外一種優秀的 O/R mapping 框架,當前版本是 2.0 。目前屬于 apache 的一個子項目了。

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

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

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

    使用 iBATIS 提供的 ORM 機制,對業務邏輯實現人員而言,面對的是純粹的 Java 對象,

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

    二者的對比:

    1. ? iBATIS 非常簡單易學, Hibernate 相對較復雜,門檻較高。

    2. ? 二者都是比較優秀的開源產品

    3. ? 當系統屬于二次開發 , 無法對數據庫結構做到控制和修改 , iBATIS 的靈活性將比 Hibernate 更適合

    4. ? 系統數據處理量巨大,性能要求極為苛刻,這往往意味著我們必須通過經過高度優化的 SQL 語句(或存儲過程)才能達到系統性能設計指標。在這種情況下 iBATIS 會有更好的可控性和表現。

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

    6. ? 以數據庫字段一一對應映射得到的 PO Hibernte 這種對象化映射得到的 PO 是截然不同的,本質區別在于這種 PO 是扁平化的,不像 Hibernate 映射的 PO 是可以表達立體的對象繼承,聚合等等關系的,這將會直接影響到你的整個軟件系統的設計思路。

    7. ? Hibernate 現在已經是主流 O/R Mapping 框架,從文檔的豐富性,產品的完善性,版本的開發速度都要強于 iBATIS

    8. ? 最關鍵的一句話是 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

    ?

    結論:

    結論:

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



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=413018


    文章來源:http://21958978.spaces.live.com/Blog/cns!A7DF246804AD47BB!195.entry
    posted on 2007-03-31 10:49 阿偉 閱讀(209) 評論(0)  編輯  收藏 所屬分類: J2EE
    主站蜘蛛池模板: 久久综合九九亚洲一区| 国产大片免费观看中文字幕| 久久乐国产精品亚洲综合| 阿v视频免费在线观看| 国产一级做a爱免费视频| 亚洲.国产.欧美一区二区三区| 成年女人免费视频播放77777| 16女性下面无遮挡免费| 羞羞网站免费观看| 乱人伦中文视频在线观看免费| 成人免费看黄20分钟| 亚洲熟妇自偷自拍另欧美| 在线精品免费视频| 亚洲AV综合永久无码精品天堂| 国产成人免费永久播放视频平台| 亚洲AV无码精品国产成人| 波多野结衣免费视频观看| 亚洲免费日韩无码系列| 亚洲国产日韩一区高清在线| 在线观看永久免费| 亚洲另类自拍丝袜第五页| 免费大片黄手机在线观看| 丁香花在线观看免费观看图片| 亚洲成A人片在线观看WWW| 精品成在人线AV无码免费看| 亚洲色一区二区三区四区| 大胆亚洲人体视频| 免费91麻豆精品国产自产在线观看| 久久久亚洲裙底偷窥综合| 午夜男人一级毛片免费| 一级午夜a毛片免费视频| 色婷婷亚洲十月十月色天| 夜夜嘿视频免费看| 两个人看www免费视频| 亚洲一区无码中文字幕乱码| 四虎永久成人免费影院域名| 免费国产在线视频| 亚洲成a人无码亚洲成av无码 | 国产精品免费久久久久影院| 亚洲嫩草影院久久精品| 国产精品冒白浆免费视频|