溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mybatis與JPA的優(yōu)缺點(diǎn)是什么

發(fā)布時(shí)間:2022-06-10 11:50:55 來源:億速云 閱讀:163 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Mybatis與JPA的優(yōu)缺點(diǎn)是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Mybatis與JPA的優(yōu)缺點(diǎn)是什么”吧!

Mybatis與JPA的優(yōu)缺點(diǎn)

JPA java持久層API

可理解為一種規(guī)范,Hibernate就是其具體一個(gè)實(shí)現(xiàn)。它的實(shí)現(xiàn)應(yīng)用是Spring DataJpa,Spring提供了一套簡(jiǎn)化開發(fā)框架,按照約定好的方法命名規(guī)則,編寫dao層接口,即可在不編寫實(shí)現(xiàn)情況下執(zhí)行數(shù)據(jù)庫操作,還提供了除CRUD以外的功能,比如分頁、排序、復(fù)雜查詢等。SpringDataJpa可以理解為對(duì)JPA的再次封裝,底層仍舊是Hibernate。

JPA優(yōu)勢(shì)

1、JPA可移植性好,支持Hibernate方言。

2、提供單表CRUD方法,減少sql語句的編寫,開發(fā)效率高,。

3、面向?qū)ο箝_發(fā)思想,對(duì)象化程度更高。

Mybatis優(yōu)點(diǎn)

1、自己編寫SQL語句,更靈活、性能較高。

2、SQL語句與代碼相互分離,易于閱讀和維護(hù)。

3、提供XML標(biāo)簽#{}、${}、 <if test=""></if>等,支持拼寫動(dòng)態(tài)SQL語句。

Mybatis缺點(diǎn)

1、單表的CRUD操作需要編寫SQL語句,庫表字段的新增修改刪除,都要重新維護(hù)。

2、XML中有大量SQL需維護(hù);參數(shù)變更來回切換修改。

3、Mybatis功能有限。 

JPA與Mybatis的區(qū)別

其實(shí)JPA和mybatis大體上沒什么區(qū)別,架構(gòu)上很相似,mybatis就是mapper層,JPA就是repository層,其他都一樣的

Mybatis與JPA的優(yōu)缺點(diǎn)是什么

JPA就是把mapper層的接口換成repository的接口

那么接口具體長(zhǎng)什么樣呢?

mapper層

自己寫sql語句

Mybatis與JPA的優(yōu)缺點(diǎn)是什么

JPA的repository

沒有具體sql語句,看起來沒有實(shí)現(xiàn)一樣,但其實(shí)是遵循規(guī)則的實(shí)現(xiàn),你只要寫 findByXxx(Xxx xx) 就能根據(jù)某個(gè)鍵自動(dòng)實(shí)現(xiàn)數(shù)據(jù)庫查詢,當(dāng)然其他的語句也是可以實(shí)現(xiàn)的。

Mybatis與JPA的優(yōu)缺點(diǎn)是什么

如果你覺得不靈活,也可以自己寫,例如

Mybatis與JPA的優(yōu)缺點(diǎn)是什么

最后的nativeQuery一定加上,不然會(huì)報(bào)錯(cuò)。

到此,相信大家對(duì)“Mybatis與JPA的優(yōu)缺點(diǎn)是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI