為什么國(guó)內(nèi)流行的 MyBatis ,國(guó)外 Java 工程師卻不愿意使用?

Spring 團(tuán)隊(duì)的Josh Long自己在Twitter上做了一個(gè)調(diào)查。1625次投票,樣本量不算大,但也能說(shuō)明問(wèn)題。和我答案最后的那些調(diào)查圖表基本一致。

我們看一下Google Trends的數(shù)據(jù):
搜索條件是這樣的:

World Wide:

United States:

France:

India:

Canada:

China:

Japan:

其他英文技術(shù)網(wǎng)站上的多個(gè)統(tǒng)計(jì):

再看看Stack Overflow上的問(wèn)題數(shù):

(含有hibernate的標(biāo)簽和問(wèn)題數(shù))

(含有mybatis的標(biāo)簽和問(wèn)題數(shù))
下面是我個(gè)人的觀點(diǎn):
其實(shí)十年前我們主要使用的ORM框架就是iBatis,而阿里巴巴是對(duì)國(guó)內(nèi)Java開發(fā)者影響最大的一家公司。阿里在國(guó)內(nèi)Java社區(qū)的影響力有目共睹,這個(gè)大家應(yīng)該都能感受到, 阿里對(duì)Java社區(qū)貢獻(xiàn)了很多實(shí)用的開源工具,并且國(guó)內(nèi)Java開發(fā)者對(duì)于阿里開源的產(chǎn)品接納程度也最高。
而且早期阿里系離職工程師的影響力也不可小覷,這些從阿里離職的工程師進(jìn)入了各個(gè)規(guī)模的公司, 通常也有擔(dān)任較高的職位, 擁有著相對(duì)較多的話語(yǔ)權(quán), 在新公司繼續(xù)使用自己熟悉的iBatis就是再正常不過(guò)的了。
MyBatis封裝較少,提供的切入點(diǎn)較多,適合進(jìn)行架構(gòu)。遇到超級(jí)復(fù)雜的場(chǎng)景的時(shí)候有不錯(cuò)的sql支持。曾經(jīng)JPA適合做增刪改,mybatis只擅長(zhǎng)查詢,但是現(xiàn)在的tk.mybatis已經(jīng)補(bǔ)上了這一塊短板,而JPA的依然沒有補(bǔ)上他的查詢短板。在復(fù)雜情況下需要在代碼里嵌入大量sql片段或手動(dòng)用代碼拼裝sql,但是老實(shí)說(shuō),都到這份上了,寫sql不是還更快一點(diǎn)?因此,做企業(yè)級(jí)應(yīng)用時(shí),如果組內(nèi)Hibernate會(huì)的人多,可以考慮用這個(gè),但是依然會(huì)埋下一個(gè)性能的坑。做互聯(lián)網(wǎng)級(jí)應(yīng)用時(shí),建議還是用Mybatis吧。
來(lái)源:https://mp.weixin.qq.com/s/awoUsv_9GVwtD5UnNDyj8A
——————END——————
歡迎關(guān)注“Java引導(dǎo)者”,我們分享最有價(jià)值的Java的干貨文章,助力您成為有思想的Java開發(fā)工程師!
