首頁>科技>

18將至,對各大電商平臺又是一大考驗。面對618、雙11流量洪峰,阿里京東都用了哪些技術?今天我們聊聊阿里的持久層選擇。眾所周知,阿里巴巴的持久層選擇了MyBatis框架。但是根據JVM生態系統報告,在ORM框架中使用MyBatis的佔比僅有6%!大量國外企業和開發者,更傾向於使用Hibernate。MyBatis似乎只在國內流行?

相信很多人都用過hibernate,你覺得它與MyBatis哪個更優秀呢?

阿里巴巴的持久層為什麼選擇MyBatis?如果換成hibernate,能否扛住618、雙11?

阿里在mysql上下了大功夫,對資料查詢的要求也比較高,很多sql查詢都要精心設計;阿里這種scale的網站服務,對cache的依賴是非常大的,對cache邏輯的要求非常高,而且一定要具體問題,具體優化。hibernate自帶的cache並不能滿足像阿里這樣的公司的需求;hibernate在你專案開始時候省事,但是會導致業務邏輯模型和資料庫模型互相依賴的程度太高,一旦專案變遷,隨便改一處資料庫的schema,整個java專案可能要改幾十處!而MyBatis的自動mapping做的也不差,開發起來也沒多花多少時間。等專案進入中後期,你需要大量定製和優化查詢的時候,MyBatis的開發效率就勝出了。很多地方Hibernate可以強大到只用一行程式碼解決很多問題,但比如說一個update()或者save()到底做了什麼,這裡既有hibernate本身的邏輯,也有你應用的邏輯,如果這一行產生了問題,你該如何去做?而MyBatis的開發和調優更加方便簡單。

阿里如果用hibernate,平時還好,趕上618、雙十一這種大促,那只有死路一條了。所以阿里巴巴的持久層拋棄hibernate,採用了MyBatis框架。Mybatis簡單高效, 學習成本低,很少增加工作量;架構來說功能單一,場景明確,耦合度低,無狀態,面向sql 語句的,便於在業務程式碼裡分散式部署,優化起來也方便,非常符合現在的開發節奏。

但是很多工作3、5年的程式設計師,對於MyBatis的諸多妙用依然一知半解。MyBatis其實學習起來不難,但是自行學習的話很容易遇到各種問題,比如匯入MyBatis原始碼時報錯;一對多查詢時,只查詢到一條或部分資料等所以在這我整理MyBatis從入門到原始碼深入學習的系統筆記,可以說很全面了!

總目錄章節

不多說,先展示總目錄

這份總結有近20W字,由於篇幅原因為了不影響閱讀,已經整理成了PDF文件免費分享給大家,有需要的朋友文末可獲取免費領取方式!

第一部分:自定義持久層框架

第二部分Mybatis相關概念

第三部分Mybatis基本應用

第四部分:Mybatis配置檔案深入

第五部分Mybatis複雜對映開發

第六部分Mybatis註解開發

第七部分Mybatis快取

第八部分Mybatis外掛

第九部分Mybatis架構原理

第十部分Mybatis原始碼剖析

第十一部分設計模式

這份總結有近20W字,由於篇幅原因為了不影響閱讀,已經整理成了PDF文件免費分享給大家,有需要的朋友麻煩轉發後私信回覆【原始碼】即可獲取免費領取方式了!

  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 蘋果釋出虛擬邀請函,並升級開發者App,全方位支援WWDC20