{eval=Array;=+count(Array);}
如果讓我來說,我推薦你使用sqltoy-orm,增刪改和對象加載簡單查詢jpa模式,查詢則比mybatis強無數倍,更加直觀簡潔,另外具有緩存翻譯大幅提升查詢性能,還有很多人不敢想象的分頁優化級別(很多僅僅優化了count處理就以為很強了,見了sqltoy的分頁優化才屬于見到了不可想象的事情)!
github上搜索sagacity-sqltoy!
https://github.com/sagframe/sagacity-sqltoy
gitee地址:
https://gitee.com/sagacity/sagacity-sqltoy
我自己開發的情況下用JPA的比例比mybaits更多,首先我比較討厭mybaits那種標簽和SQL混用的風格,其次是JPA的也是可以使用原生SQL嵌入實習復雜查詢的,最后是JPA穩定性比較好
看你團隊喜好吧,Mybatis 容易上手,也更加靈活。
JPA 也不錯,畢竟屬于 Spring 全家桶一部分,像使用對象一樣寫 SQL 這種體驗也蠻好的。
都可以執行原生 SQL。
怎么喜歡怎么來。
不必糾結。
都可以吧,mybatis我更多用來寫報表統計,或者復雜的關聯查詢。如果架構是微服務,并且通過業務解耦來避免了頻繁的事務,用spring data是非常好的選擇[呲牙]最后,為什么非要二選一呢?看看mybatis plus吧,成功的糅合了mybatis的靈活與jpa的快捷,還有代碼生成器,非常建議題主去試試!
技術選型需要結合多方面來考慮,這里我試著列舉一些方面,僅供參考。
是否需要兼容多種數據庫。如果需要兼容,優先考慮spring data jpa。因為mybatis想要兼容數據庫需要寫多套sql腳本,工作量很大。
開發團隊的經驗。開發團隊成員過往開發中,對哪個orm框架更熟悉。一般來說,mybatis上手比較容易,jpa/hibernate雖然不用寫sql語句,但是配置復雜,各個狀態轉換難以理解,出現錯誤也難以調試,對開發人員能力要求較高。
性能考慮。作為orm框架,jpa/hibernate需要把數據庫行完全映射成java對象,占用內存較大,特別是進行關鍵查詢的情況下。當然,這可以通過懶加載、查詢指定字段等方式優化,但是和上面一樣,對人員要求較高。另外hibernate生成的sql語句可讀性也較差,不利于檢查問題。
其他雜項考慮。jpa對邏輯刪除支持較差; mybatis編寫ResultMap過于繁瑣等等。
總結一下,spring data jpa開發效率高,代碼量少,但是代價是學習成本和優化成本比較高。mybatis代碼量大一些,不好兼容多種數據庫,但是手動編寫sql相對靈活,上手簡單。
0
回答0
回答0
回答1
回答0
回答5
回答10
回答0
回答0
回答8
回答