Spring 團隊的Josh Long自己在Twitter上做了一個調查。1625次投票,樣本量不算大,但也能說明問題。和我答案最後的那些調查圖表基本一緻。

我們看一下Google Trends的資料:搜尋條件是這樣的:
World Wide:
United States:
France:
India:
Canada:
China:
Japan:
其他英文技術網站上的多個統計:
再看看Stack Overflow上的問題數:
(含有hibernate的标簽和問題數)
(含有mybatis的标簽和問題數)下面是我個人的觀點:其實十年前我們主要使用的ORM架構就是iBatis,而阿裡巴巴是對國内Java開發者影響最大的一家公司。阿裡在國内Java社群的影響力有目共睹,這個大家應該都能感受到, 阿裡對Java社群貢獻了很多實用的開源工具,并且國内Java開發者對于阿裡開源的産品接納程度也最高。而且早期阿裡系離職工程師的影響力也不可小觑,這些從阿裡離職的工程師進入了各個規模的公司, 通常也有擔任較高的職位, 擁有着相對較多的話語權, 在新公司繼續使用自己熟悉的iBatis就是再正常不過的了。MyBatis封裝較少,提供的切入點較多,适合進行架構。遇到超級複雜的場景的時候有不錯的sql支援。曾經JPA适合做增删改,mybatis隻擅長查詢,但是現在的tk.mybatis已經補上了這一塊短闆,而JPA的依然沒有補上他的查詢短闆。在複雜情況下需要在代碼裡嵌入大量sql片段或手動用代碼拼裝sql,但是老實說,都到這份上了,寫sql不是還更快一點?是以,做企業級應用時,如果組内Hibernate會的人多,可以考慮用這個,但是依然會埋下一個性能的坑。做網際網路級應用時,建議還是用Mybatis吧。綜合考慮,Mybatis的優點是簡單高效,優化起來也友善,比較符合現在的開發節奏,現在的網際網路公司都是先快速開發占領市場,然後再優化代碼。而且這個過程需求經常是變來變去的,開發人員也有流動性,這種情況下用Mybatis顯然更加适合。https://mp.weixin.qq.com/s/l4cQUwQNne7Bg9uPwG9Q_w