關(guān)于Mybatis與JPA的優(yōu)缺點說明
Mybatis與JPA的優(yōu)缺點
JPA java持久層API
可理解為一種規(guī)范,Hibernate就是其具體一個實現(xiàn)。它的實現(xiàn)應(yīng)用是Spring DataJpa,Spring提供了一套簡化開發(fā)框架,按照約定好的方法命名規(guī)則,編寫dao層接口,即可在不編寫實現(xiàn)情況下執(zhí)行數(shù)據(jù)庫操作,還提供了除CRUD以外的功能,比如分頁、排序、復(fù)雜查詢等。SpringDataJpa可以理解為對JPA的再次封裝,底層仍舊是Hibernate。
JPA優(yōu)勢
1、JPA可移植性好,支持Hibernate方言。
2、提供單表CRUD方法,減少sql語句的編寫,開發(fā)效率高,。
3、面向?qū)ο箝_發(fā)思想,對象化程度更高。
Mybatis優(yōu)點
1、自己編寫SQL語句,更靈活、性能較高。
2、SQL語句與代碼相互分離,易于閱讀和維護(hù)。
3、提供XML標(biāo)簽#{}、${}、 <if test=""></if>等,支持拼寫動態(tài)SQL語句。
Mybatis缺點
1、單表的CRUD操作需要編寫SQL語句,庫表字段的新增修改刪除,都要重新維護(hù)。
2、XML中有大量SQL需維護(hù);參數(shù)變更來回切換修改。
3、Mybatis功能有限。
JPA與Mybatis的區(qū)別
其實JPA和mybatis大體上沒什么區(qū)別,架構(gòu)上很相似,mybatis就是mapper層,JPA就是repository層,其他都一樣的
JPA就是把mapper層的接口換成repository的接口
那么接口具體長什么樣呢?
mapper層
自己寫sql語句
JPA的repository
沒有具體sql語句,看起來沒有實現(xiàn)一樣,但其實是遵循規(guī)則的實現(xiàn),你只要寫 findByXxx(Xxx xx) 就能根據(jù)某個鍵自動實現(xiàn)數(shù)據(jù)庫查詢,當(dāng)然其他的語句也是可以實現(xiàn)的。
如果你覺得不靈活,也可以自己寫,例如
最后的nativeQuery一定加上,不然會報錯。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于@RestControllerAdvice與@ControllerAdvice的區(qū)別說明
這篇文章主要介紹了@RestControllerAdvice與@ControllerAdvice的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Java 使用openoffice進(jìn)行word轉(zhuǎn)換為pdf的方法步驟
這篇文章主要介紹了Java 使用openoffice進(jìn)行word轉(zhuǎn)換為pdf的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Java通過調(diào)用C/C++實現(xiàn)的DLL動態(tài)庫——JNI的方法
這篇文章主要介紹了Java通過調(diào)用C/C++實現(xiàn)的DLL動態(tài)庫——JNI的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-01-01