如今網絡上充斥着Jpa和Mybatis的一些對比。其實狹義上來講是hibernate和mybatis之間的比較。mysql
例如:爲何感受國內比較流行的 mybatis 在國外好像沒人用的樣子?程序員
下面是一些截圖spring
我不是一個喜歡評論的人,但此次我忍不住了。sql
UPDATE items SET price = 11 WHERE id = 1111
,難道更新數據的時候不須要先取出數據再更新嗎?對了,但凡是有一點點的併發需求,不管是樂觀鎖仍是悲觀鎖,都須要查詢到最新的數據不是嗎,悲觀的加鎖,樂觀的核對 Version。至於全字段回寫數據庫,只是不知道有這種操做而已,hibernate 明明能夠指定局部字段更新的好嗎既然 Jpa 用起來省心,不必硬跟某些大廠的步伐,一步兩步,似魔鬼的步伐!數據庫
就像淘寶技術十年裏說的:網絡
如用戶模塊,老的 member.taobao.com 繼續維護,不添加新功能,新功能在新的模塊上開發,跟老的模塊共用一個數據庫,開發完畢以後放到不一樣的應用集羣上,另開一個域名 member1.taobao.com ,同時再替換老的功能,替換一個,就把老的模塊上的功能關閉一個,逐漸把用戶引導到 member1.taobao.com ,等全部的功能都替換完以後,關閉 member.taobao.com 上。從設計上來看,這個 member1 的二級域名應該是一個過渡狀態,但咱們把 member 域名的代碼下線之後,發現很難把 member1 切換回 member,由於有些地方把連接寫死了,因而後來很長時間裏咱們都是在用 member1.taobao.com 這樣奇怪的域名。一年後,有另一家互聯網公司開始作電子商務了,咱們發現他們的域名也叫 member1.xx.com 、auction1.xx.com ,複製得毫無保留,咱們只能會心一笑。數據結構
沒錯,我用JPA,我也很喜歡JPA的設計哲學。可是同時我以爲Mybatis也是一個很好的框架,高效地解決了不少問題,知足了不少企業的需求,給一個大大的贊。mybatis
技術只是解決問題的一種方式、一種工具,選擇哪一種技術因人而異,存在即合理。併發