{eval=Array;=+count(Array);}
主要是hibernate提倡以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù),SQL都是自動(dòng)生成的,有些復(fù)雜的查詢orm生成的SQL不會(huì)命中索引,導(dǎo)致查詢性能不高。一切起源于杰克馬提出的去ioe運(yùn)動(dòng),根本原因是沒(méi)錢就瘋狂壓榨程序員。
1.國(guó)內(nèi)基本都學(xué)過(guò)SQL,而且寫SQL很方便。
2.國(guó)內(nèi)大多數(shù)是“面向數(shù)據(jù)庫(kù)編程”
3.JPA的表連接太難懂,國(guó)內(nèi)對(duì)于ORM的思想還是停留在JDBC
4.Mybatis更易于維護(hù),面對(duì)不穩(wěn)定的國(guó)內(nèi)環(huán)境更適合
1.hibernate對(duì)sql做了一層封裝轉(zhuǎn)換變成了hql,sql對(duì)程序員來(lái)說(shuō)是最直觀的,hql又包了一層,感覺(jué)別扭。
2.都要生成一通xml,hibernate沒(méi)優(yōu)勢(shì)啊,mybatis一些插件單表不用xml了,維護(hù)方便啊。
3.國(guó)內(nèi)項(xiàng)目業(yè)務(wù)復(fù)雜,mybatis更具有靈活性。插件豐富tk.mybatis、mybatis-plus大大降低了開發(fā)成本。
4.MyBatis可以進(jìn)行更為細(xì)致的SQL優(yōu)化,可以減少查詢字段。
5.MyBatis容易掌握,而Hibernate門檻較高。
6.緩存問(wèn)題(這一點(diǎn)我說(shuō)得不一定對(duì)),話說(shuō)hibernate比mybatis更好使用,需要注意得地方少。但是,但是,但是啊我覺(jué)得這只是對(duì)單機(jī)項(xiàng)目吧,目前多節(jié)點(diǎn)項(xiàng)目都用redis作為緩存啊,這就使的架構(gòu)師選擇mybatis時(shí)更加沒(méi)什么猶豫了。
7.國(guó)內(nèi)開源項(xiàng)目基本都是集成得mybatis,氛圍就是這樣。用hibernate的都是一些老項(xiàng)目,公司內(nèi)部的不開源的,基本的架構(gòu)設(shè)計(jì)和目前的潮流格格不入了。國(guó)內(nèi)的培訓(xùn)機(jī)構(gòu)基本都時(shí)ssm流。
8.MyBatis相對(duì)于hibernate的缺點(diǎn)漸漸被彌補(bǔ)是關(guān)鍵,MyBatis的代碼生成器拓展起來(lái)真的很方便。
9.MyBatis的批量保存使用要注意
國(guó)內(nèi)有段時(shí)間也流行過(guò)hibernate,但大多到后期,覺(jué)的不好優(yōu)化。還是覺(jué)的mybatis可控,符合國(guó)情唄,但為了對(duì)付mybatis這個(gè)半成品,業(yè)界也推出了不少增強(qiáng)框架:mybatis plus, tk mybatis, mybatis enhance。 這些產(chǎn)品有不少優(yōu)點(diǎn),但也都沒(méi)有辦法徹底解決問(wèn)題。
最近有個(gè)新興起的增強(qiáng)框架, fluent mybatis,吸收很多框架的優(yōu)點(diǎn),既有jpa的方便,又保持了可以自己編寫sql的原始掌控能力。
同時(shí)有很多增強(qiáng)的特性:分頁(yè)處理,租房處理,嵌套查詢,聯(lián)表查詢,多數(shù)據(jù)庫(kù)兼容處理,fluent語(yǔ)法。
https://gitee.com/fluent-mybatis/fluent-mybatis
https://mp.weixin.qq.com/s/jlcWt_1zbksDgncVr64nqA
國(guó)內(nèi)人多,用戶量大,必須要mybatis來(lái)優(yōu)化sql。國(guó)外大部分網(wǎng)站人不多,hibernate更效率,國(guó)外的大型網(wǎng)站依然是mybatis,不過(guò)嘛大型畢竟只有那幾家,所以國(guó)外hibernate是主流。
因?yàn)橹袊?guó)人多,數(shù)據(jù)量大,業(yè)務(wù)變化快,設(shè)計(jì)人員水平問(wèn)題,時(shí)間緊,這些層層疊加起來(lái)就讓頭部程序員選擇更靈活的mybatis,然后他們寫出各種文檔,后輩們自然跟風(fēng),難道我放著中文不看去看英文資料?
1:持久層只是個(gè)工具,不要太在意。
2:中西方思考方式還是有比較大的差已的,不要以自己當(dāng)前的環(huán)境考慮別人的選擇
3:如果是數(shù)據(jù)庫(kù)編程為主的團(tuán)隊(duì),mybatis還是不錯(cuò)的,畢竟這種團(tuán)隊(duì)選擇它,不是自己決定的,而是市場(chǎng)環(huán)境之必然
0
回答0
回答3
回答0
回答0
回答1
回答0
回答10
回答0
回答0
回答