最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis與Ibatis的區(qū)別

 更新時間:2016年05月05日 10:09:11   作者:u_wei_wei  
這篇文章主要介紹了Mybatis與Ibatis的區(qū)別,需要的朋友可以參考下

Mybatis與Ibatis的區(qū)別:
1、Mybatis實現(xiàn)了接口綁定,使用更加方便
在ibatis2.x中我們需要在DAO的實現(xiàn)類中指定具體對應(yīng)哪個xml映射文件,
而Mybatis實現(xiàn)了DAO接口與xml映射文件的綁定,自動為我們生成接口的具體實現(xiàn),使用起來變得更加省事和方便。
這可以說是Mybatis最重要的改進。

注意:
雖然Mybatis支持在接口中直接使用annotation的配置方式來簡化配置,
不過強烈建議仍然使用xml配置的方式。畢竟annotation的配置方式功能有限且代碼入侵性太強。使用xml配置方式才能體現(xiàn)出Mybatis的優(yōu)勢所在

2、對象關(guān)系映射的改進,效率更高
相信很多在使用ibatis2.x的朋友并沒有通過ibatis的xml映射文件來實現(xiàn)對象間的關(guān)系映射。其實也確實沒有必要那么做,因為ibatis2.x采用的是“嵌套查詢”的方式將對象之間的關(guān)系通過查詢語句的直接拼裝來實現(xiàn),其效果和在DAO或Service中自行封裝是一樣的。
不過這種方式存在“N+1查詢問題”。
概括地講,N+1查詢問題可以是這樣引起的:
? 你執(zhí)行了一個單獨的SQL語句來獲取結(jié)果列表(就是+1)。
? 對返回的每條記錄,你執(zhí)行了一個查詢語句來為每個加載細節(jié)(就是N)。
這個問題會導(dǎo)致成百上千的SQL語句被執(zhí)行。這通常不是期望的。

而在Mybatis中,除了兼容ibatis2.x中的“嵌套查詢”方式外,還提供了直接“嵌套結(jié)果”的方式,其效果相當于直接通過一句sql將查詢出的dto對象自動封裝成所需的對象。
具體實現(xiàn)方法請自行參考Mybatis官方使用手冊,不在此累述.

不過實際上這一改進所帶來的好處也是很有限的。因為這一方式在使用分頁的時候并不起作用,或者說嵌套對象的結(jié)果集是不允許進行分頁的。這一點在Mybatis框架中已經(jīng)做出了明確的限制(org.apache.ibatis.executor.resultset.NestedResultSetHandler里34行),而實際項目中需要分頁的情況又特別多……
仔細一想,一對多映射確實不能通過配置文件來分頁,因為這時查詢出的記錄數(shù)并不等于實際返回對象的size,不過一對一映射為什么也不允許就不太明白了??赡苁且驗橐粚σ皇且粚Χ嗟奶乩?,而在設(shè)計框架的時候并沒有考慮去處理或是難于處理這一特例吧。

3、MyBatis采用功能強大的基于OGNL的表達式來消除其他元素
熟悉struts2的人應(yīng)該對OGNL表達式不會感到陌生,
MyBatis采用OGNL表達式簡化了配置文件的復(fù)雜性,使用起來更簡潔。

可能較為關(guān)心的是
Mybatis實現(xiàn)了接口綁定,使用更加方便。
iBatis / MyBatis 3提供了一個新的功能:注解。

相關(guān)文章

  • javaweb上傳下載實例完整版解析(上)

    javaweb上傳下載實例完整版解析(上)

    這篇文章主要為大家詳細解析了javaweb上傳下載實例,本文重點在于文件上傳功能的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 詳解JAVA 設(shè)計模式之狀態(tài)模式

    詳解JAVA 設(shè)計模式之狀態(tài)模式

    這篇文章主要介紹了JAVA 狀態(tài)模式的的相關(guān)資料,文中講解的非常細致,幫助大家更好的學(xué)習(xí)理解JAVA 設(shè)計模式,感興趣的朋友可以了解下
    2020-06-06
  • Java如何使用jar命令打包

    Java如何使用jar命令打包

    把多個文件打包成一個壓縮包——這個壓縮包和WinZip的壓縮格式是一樣的,區(qū)別在于jar壓縮的文件默認多一個META-INF的文件夾,該文件夾里包含一個MANIFEST.MF的文件,本文給大家介紹Java如何使用jar命令打包,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Java實現(xiàn)高校教務(wù)系統(tǒng)

    Java實現(xiàn)高校教務(wù)系統(tǒng)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)高校教務(wù)系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • MybatisPlus將自定義的sql列表查詢返回改為分頁查詢

    MybatisPlus將自定義的sql列表查詢返回改為分頁查詢

    本文主要介紹了MybatisPlus將自定義的sql列表查詢返回改為分頁查詢,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 解決線程并發(fā)redisson使用遇到的坑

    解決線程并發(fā)redisson使用遇到的坑

    這篇文章主要介紹了解決線程并發(fā)redisson使用遇到的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring事件監(jiān)聽機制使用和原理解析

    Spring事件監(jiān)聽機制使用和原理解析

    Spring的監(jiān)聽機制基于觀察者模式,就是就是我們所說的發(fā)布訂閱模式,這種模式可以在一定程度上實現(xiàn)代碼的解耦,本文將從原理上解析Spring事件監(jiān)聽機制,需要的朋友可以參考下
    2023-06-06
  • spring容器初始化遇到的死鎖問題解決

    spring容器初始化遇到的死鎖問題解決

    這篇文章主要給大家介紹了關(guān)于spring容器初始化時候遇到的死鎖問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 詳解Java中的數(shù)組與字符串相關(guān)知識

    詳解Java中的數(shù)組與字符串相關(guān)知識

    這篇文章主要介紹了詳解Java中的數(shù)組與字符串相關(guān)知識,包括操作字符串的一些基本方法列舉,需要的朋友可以參考下
    2015-09-09
  • Idea2020 無法share項目到svn的解決方法

    Idea2020 無法share項目到svn的解決方法

    這篇文章主要介紹了Idea2020 無法share項目到svn的解決方法,需要的朋友可以參考下
    2020-09-09

最新評論

开远市| 德令哈市| 昌宁县| 包头市| 云龙县| 芜湖县| 巴林左旗| 仙桃市| 元氏县| 东明县| 浮山县| 新田县| 佛坪县| 高青县| 沙坪坝区| 巴林左旗| 罗甸县| 临漳县| 当涂县| 沈丘县| 自贡市| 景洪市| 嘉黎县| 壶关县| 江都市| 盐城市| 桃江县| 河南省| 醴陵市| 南阳市| 汝南县| 濉溪县| 洞头县| 金湖县| 包头市| 深水埗区| 曲阳县| 无极县| 榆树市| 永济市| 迭部县|