SpringData JPA也能寫sql,為什麼還要用mybatis

時間 2021-05-11 23:51:13

1樓:codecv

jpa也可以寫原生sql。

mybatis也可以使用第三方增強實現根據實體自動建表更新表。

mybatis也可以不寫xml用註解查詢和provider。

愛用啥用啥,該用啥用啥,有什麼可爭的。

我都會。

2樓:von change

可以試試spring-data-mybatis-mini[github位址](https://

github.com/VonChange/spring-data-mybatis-mini)[gitee位址](https://

)等同於spring data jdbc + mybatis 動態sql能力

1. 拋棄繁瑣的xml 只使用mybatis模版引擎即動態sql能力 sql寫在markdown檔案裡

更容易書寫和閱讀 sql能統一管理檢視

2. 底層基於springJdbc 而不是mybatis 更直接純粹3. 提供單錶增刪改批量更新插入等基礎方法支援分頁讀寫分離4.

mybatis最大優點就是sql模版引擎我也有且僅有使用這部分功能(對於使用過mybatis的無學習成本)但底層使用springJDBC才是王道

3樓:哈哈陳

微服務的架構下,為了服務解耦,盡量的減少了聯表查詢。

個人認為,只要不是需要太多自定義的業務sql,jpa從開發效率來說,無疑是更好的。

Mybatis的優點主要是sql便於維護而已,簡單的crud效能上能有多大提公升嗎,不至於。

4樓:嗯嗯

有什麼好爭的,簡單的查詢jpa,複雜的查詢用jdbctemplate,相互配合,spring自帶的不香嗎,自定義查詢又不是很多,要是很多直接用mybaits配合逆向工程不就行了?

5樓:疾風hey

我一直用mybatis,jpa我也只看了一下,想問問jpa什麼查詢的怎麼應對那些複雜查詢的呢,比如幾個表交叉,然後十幾二十種字段條件那種列表,能寫sql的話,這個值為a就一種sql條件,乙個值為b就另一種sql條件,其它又是另一種。

業務也一直在變,這次連了d表,明天再連e錶用e表的條件查,而且要查詢的條件也會變,今天是這個,可能明天不要了,要另乙個條件。

還有各種動態查的統計各種條件。

虛心請教。

既然回答裡面試著弄了個例子,也放上來當例子吧,ABCD表就當是什麼學校年級班級學生之類的理解就好

select a2,b3,d3

FROM A

INNER JOIN B ON a1=b1

INNER JOIN C ON b2=c1

LEFT JOIN D ON b3=d1

WHERE c3 = 1

and a2=#

and d2=#

LIMIT 10,20

是mybatis的條件,如果這個不為空,這sql只是個普通的列表的一條而已,還沒什麼特別的邏輯

6樓:江湖不見

每個框架都有其存在的價值,要不然早就死翹翹了。既然都允許存在了,那就看自己以及團隊或者某些原因選擇使用了,畢竟在軟體架構中不存在所謂的銀彈

7樓:JayYang

因為他們不會用spring data jpa 的時候直接寫sql查詢唄…一定要說jpa不能寫複雜的,效能不好調優啥的。用spring data jpa,並且在碰到複雜關聯查詢或者 in 查詢之類可能引起效能問題的時候直接寫sql查,肯定是吊打mybatis的。就是比較考驗程式猿。

8樓:五花肉肉

一直採用的jpa.對於資料量不大,效能最求不高的專案,優先推薦jpa.用起來了簡直不要太爽.

當然mybatis目前在國內應該算是主流.個人覺得原因可能在於jpa 預設採用hibernate,而hibernate的難度較高.有些調優比較困難.

9樓:非典型理工男

就是選擇問題吧,mybatis再好,仍然有用原生API運算元據庫的專案

spring 再好,用其它web框架的人同樣不少賓士寶馬很好,夏利Jetta仍然有市場

世界很大,多元化不也挺美好麼

10樓:

快速原型用spring jpa,持續優化換mybatis

spring jpa 連保證兩次生成sql都一樣都做不到的資料框架是非常不適合線上生產的,而且很多線上sql還帶有很多的hint等等內容

但在原型開發階段spring jpa就很不錯了,可以快速更改schema,或者一邊開發一邊更改schema,輕量級別的呼叫並不在主要鏈路的拼裝型sql也可以使用spring jpa來降低開發量

11樓:薛偉

兩個框架都用過,還是看專案jpa簡單增刪改查很方便,hql讓你不用顧忌資料庫的切換,但是想要優化複雜sql比較麻煩,生成的外來鍵簡直讓人折磨,多表查詢時很難對映至實體,mybatis感覺就是可操作性會比較強,讓你自己寫sql,一鍵雖然說不能像jpa那樣做到那麼強的實體與表的對映,但是借助第三方的外掛程式如mybatis plus使用起來依舊方便。

最後沒有絕對好的技術,只有適不適用於專案,我反正一直這麼認為的

12樓:Neyko

因為:1、歷史遺留問題。

2、沒有用過JPA不願意學習。

3、Mybatis用起來挺好的,就這樣吧。

在我看來,程式設計的世界裡沒有銀彈,如何把需求落地才是最應該關心的問題。

最後,我更喜歡JPA。

13樓:陳龍

因為myBatis寫SQL,人盡皆知。

Spring Data JPA寫SQL,很多人不知道。

就這麼簡單。

很少有人願意學習、理解、接受不熟悉的東西,現在的技術滿足工作需要就不會去關心別的東西。

14樓:

別人不傻,我很傻,

所以我覺得別人都沒有思考過,都是隨大溜,沒有去嘗試過springdatajpa,別人都用mybatis他也就用了,反正我用springdatajpa用的很好,效率比之前用mybatis提高了很多

15樓:langu

專案人員sql玩的都比較溜,各種顯示介面要表關聯,專案用的不是spring,用中國產的mybatis-plus也可以不寫sql。以上原因讓mybatis也有很大的被選機率。

spring data jpa明明很不錯了,為什麼現在還是這麼多人吹mybatis?

沒有好壞區分,只是應用場景不同,國內很多服務涉及到複雜的場景,查詢語句異常複雜,這個時候使用jpa就不那麼美麗了,mybatis可以寫sql就很適合,而且,這種情況在國內還很多,所以。 夏天龍 吹mybatis沒有必要。spring data jpa底層還是使用了 Hibernate 的 JPA 技...

英語不好,也能移民嗎?

沙拉不減肥 英語不好有錢嗎?雖然說的實在了點,如果英語不好還沒錢就別考慮了,在國內也過挺好,如果英語不好,但預算還算比較充裕,那麼也是有很多可選的國家,如果英語不好,預算又不太充裕,優先考慮歐洲 葡萄牙 西班牙 斯洛伐克都可以 acrobat 能啊!法國 德國 義大利 西班牙 荷蘭 瑞典 希臘 土耳...

大神們能抽空也噴噴我嗎?

灼灼其華 無女主不是亮點,不公升級怎麼說呢,不太行。不裝逼打臉,沒意思。最後一點,多線敘事,那主角筆墨肯定少。是百分之百的撲街流。而且還是在縱橫,恭喜你,撲死了。 Desperate struggle 還行,我覺得不錯,比較對我胃口。但我覺得你一直按這個畫風寫下去故事寫不長,最多最多也就一百章。如果...