Mybatis-Plus接口BaseMapper與Services使用詳解
最近在工作開(kāi)發(fā)中遇到一個(gè)批量新增修改的處理,我使用的是 mybatis-plus,但是在用的 BaseMapper 接口里是沒(méi)有這個(gè)方法的,后來(lái)發(fā)現(xiàn) Service 接口里有這個(gè)方法,今天整理一下這2種用法。
一、使用 BaseMapper 接口
MyBatis Plus 提供了通用的 Mapper 接口(即 BaseMapper 接口),該接口對(duì)應(yīng)我們的 DAO 層。在該接口中,定義了我們常見(jiàn)的方法簽名,這樣就可以方便我們對(duì)表進(jìn)行操作。例如:查詢(xún)(select)、插入(insert)、更新(update)和刪除(delete)操作。
以為項(xiàng)目中的代碼為例,我有一個(gè)實(shí)體類(lèi)User,需要對(duì)其進(jìn)行CRUD,那么我直接在 DAO 層去繼承 BaseMapper 接口即可。
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
這樣我就可以直接使用里面的各種API了,非常的方便。另外,我發(fā)現(xiàn)了一個(gè)mybatis-plus的簡(jiǎn)潔教程,可以很方便的查詢(xún)一些知識(shí)點(diǎn),文末自取。

但是后來(lái)在開(kāi)發(fā)過(guò)程中,發(fā)現(xiàn)BaseMapper接口中的insert()不能滿(mǎn)足我的需求了,而在Service接口中,發(fā)現(xiàn)有個(gè)saveOrUpdateBatch()可以使用,果斷擁抱之。
二、使用 Service 接口
除了 BaseMapper 接口,MyBatis Plus 還提供了 IService 接口,該接口對(duì)應(yīng) Service 層。MyBatis Plus 的通用 Service CRUD 實(shí)現(xiàn)了 IService 接口,進(jìn)一步封裝 CRUD。為了避免與 BaseMapper 中定義的方法混淆,該接口使用 get(查詢(xún)單行)、remove(刪除)、list(查詢(xún)集合)和 page(分頁(yè))前綴命名的方式進(jìn)行區(qū)別。
這個(gè)既然是對(duì)應(yīng) Service 接口,那么也就要用在 service 層。
還是要處理剛才的User類(lèi),DAO 層仍然是需要的:
@Mapper
public interface AddressListMapper extends BaseMapper<User>{
}
然后在 service 層的接口繼承IService,泛型是User實(shí)體類(lèi):
public interface AddressListService extends IService<User> {
/**
* 同步用戶(hù)信息到數(shù)據(jù)庫(kù)
*/
void saveUsers();
}
最后在 service 的實(shí)現(xiàn)層中,繼承ServiceImpl,泛型中傳入mapper和實(shí)體類(lèi):
@Service
public class AddressListServiceImpl extends ServiceImpl<AddressListMapper, User> implements AddressListService {
}
現(xiàn)在就可以使用 mybaits-plus service接口中提供的api了。

我使用的是saveOrUpdateBatch,這個(gè)要注意下,是通過(guò)自定義的唯一索引進(jìn)行批量保存更新的,所以我要去實(shí)體類(lèi)User中使用@TableId標(biāo)記出唯一索性。
/**
* 郵箱
*/
@TableId
private String email;
最后,放上教程鏈接:http://www.dbjr.com.cn/article/222180.htm
以上就是Mybatis-Plus接口BaseMapper與Services使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Mybatis Plus接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Mybatis-plus的service通用接口解讀
- Mybatis-plus中IService接口的基本使用步驟
- MyBatis-Plus插件機(jī)制及通用Service新功能
- Mybatis-Plus實(shí)體類(lèi)注解方法與mapper層和service層的CRUD方法
- 詳解關(guān)于mybatis-plus中Service和Mapper的分析
- mybatis-plus批處理IService的實(shí)現(xiàn)示例
- MyBatis-Plus 通用IService使用詳解
- mybatisplus中返回Vo的案例講解
- mybatis-plus 自定義 Service Vo接口實(shí)現(xiàn)數(shù)據(jù)庫(kù)實(shí)體與 vo 對(duì)象轉(zhuǎn)換返回功能
相關(guān)文章
Springboot整合hutool驗(yàn)證碼的實(shí)例代碼
在 Spring Boot 中,你可以將 Hutool 生成驗(yàn)證碼的功能集成到 RESTful API 接口中,這篇文章主要介紹了Springboot整合hutool驗(yàn)證碼,需要的朋友可以參考下2024-08-08
Springboot pom項(xiàng)目間接依賴(lài)包版本與預(yù)期不符原因解決分析
這篇文章主要介紹了Springboot pom項(xiàng)目間接依賴(lài)包版本與預(yù)期不符原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
java實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘并設(shè)置鬧鐘功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘并設(shè)置鬧鐘功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Flink開(kāi)發(fā)IDEA環(huán)境搭建與測(cè)試的方法
這篇文章主要介紹了Flink開(kāi)發(fā)IDEA環(huán)境搭建與測(cè)試的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Spring Cloud中Eureka開(kāi)啟密碼認(rèn)證的實(shí)例
這篇文章主要介紹了Spring Cloud中Eureka開(kāi)啟密碼認(rèn)證的實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Lombok之@AllArgsConstructor的使用方式
這篇文章主要介紹了Lombok之@AllArgsConstructor的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
emoji表情與unicode編碼互轉(zhuǎn)的實(shí)現(xiàn)(JS,JAVA,C#)
這篇文章主要介紹了emoji表情與unicode編碼互轉(zhuǎn)的實(shí)現(xiàn)(JS,JAVA,C#),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
java實(shí)現(xiàn)輸出字符串中第一個(gè)出現(xiàn)不重復(fù)的字符詳解
這篇文章主要介紹了java實(shí)現(xiàn)輸出字符串中第一個(gè)出現(xiàn)不重復(fù)的字符詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
關(guān)于SpringBoot自定義條件注解與自動(dòng)配置
這篇文章主要介紹了關(guān)于SpringBoot自定義條件注解與自動(dòng)配置,Spring Boot的核心功能就是為整合第三方框架提供自動(dòng)配置,而本文則帶著大家實(shí)現(xiàn)了自己的自動(dòng)配置和Starter,需要的朋友可以參考下2023-07-07

