一绵载、hibernate開發(fā)量更小
hibernate因?yàn)橛辛己玫挠成錂C(jī)制矢腻,針對(duì)高級(jí)查詢,也可以不必手動(dòng)編寫sql充包,開發(fā)者可以更關(guān)注于業(yè)務(wù)邏輯而不用擔(dān)心sql的生成和結(jié)果映射。
mybatis半自動(dòng)指的是它在做高級(jí)查詢時(shí)遥椿,必須手動(dòng)寫sql以及resultMap基矮。
二、mybatis性能更好冠场,更靈活
在sql優(yōu)化方面家浇,hibernate默認(rèn)是會(huì)把表中所有的列都查出來(lái)的,而mybatis是自己指定要查哪些列碴裙。當(dāng)然钢悲,hibernate允許自己指定查什么,但是就會(huì)破壞hibernate開發(fā)的簡(jiǎn)潔性舔株。所以mybatis在sql優(yōu)化上還是比hibernate靈活的莺琳。
三、hibernate數(shù)據(jù)庫(kù)無(wú)關(guān)载慈,但mybatis做復(fù)雜查詢更加方便
hibernate強(qiáng)大的數(shù)據(jù)庫(kù)無(wú)關(guān)性惭等,只需在xml文件中配置驅(qū)動(dòng)和方言,就可以實(shí)現(xiàn)和不同數(shù)據(jù)庫(kù)的交互办铡。而mybatis的所有sql和所使用的數(shù)據(jù)庫(kù)有直接關(guān)系辞做,一旦變更數(shù)據(jù)庫(kù),那么你的sql語(yǔ)句基本就是要修改了寡具。
mybatis比hibernate更加適合開發(fā)復(fù)雜查詢的項(xiàng)目凭豪,且更容易上手。