日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php能不能用MyBatis,Mybatis与Ibatis的区别

發(fā)布時間:2023/12/10 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php能不能用MyBatis,Mybatis与Ibatis的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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í)行了一個查詢語句來為每個加載細(xì)節(jié)(就是N)。

這個問題會導(dǎo)致成百上千的SQL語句被執(zhí)行。這通常不是期望的。

而在Mybatis中,除了兼容ibatis2.x中的“嵌套查詢”方式外,還提供了直接“嵌套結(jié)果”的方式,其效果相當(dāng)于直接通過一句sql將查詢出的dto對象自動封裝成所需的對象。

具體實現(xiàn)方法請自行參考Mybatis官方使用手冊,不在此累述.

不過實際上這一改進所帶來的好處也是很有限的。因為這一方式在使用分頁的時候并不起作用,或者說嵌套對象的結(jié)果集是不允許進行分頁的。這一點在Mybatis框架中已經(jīng)做出了明確的限制(org.apache.ibatis.executor.resultset.NestedResultSetHandler里34行),而實際項目中需要分頁的情況又特別多……

仔細(xì)一想,一對多映射確實不能通過配置文件來分頁,因為這時查詢出的記錄數(shù)并不等于實際返回對象的size,不過一對一映射為什么也不允許就不太明白了。可能是因為一對一是一對多的特例,而在設(shè)計框架的時候并沒有考慮去處理或是難于處理這一特例吧。

3、MyBatis采用功能強大的基于OGNL的表達(dá)式來消除其他元素

熟悉struts2的人應(yīng)該對OGNL表達(dá)式不會感到陌生,

MyBatis采用OGNL表達(dá)式簡化了配置文件的復(fù)雜性,使用起來更簡潔。

可能較為關(guān)心的是

Mybatis實現(xiàn)了接口綁定,使用更加方便。

iBatis / MyBatis 3提供了一個新的功能:注解。

更多Mybatis與Ibatis的區(qū)別相關(guān)文章請關(guān)注PHP中文網(wǎng)!

本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的php能不能用MyBatis,Mybatis与Ibatis的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。