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

但是后來在開發(fā)過程中,發(fā)現(xiàn)BaseMapper接口中的insert()不能滿足我的需求了,而在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(查詢單行)、remove(刪除)、list(查詢集合)和 page(分頁)前綴命名的方式進(jìn)行區(qū)別。
這個(gè)既然是對(duì)應(yīng) Service 接口,那么也就要用在 service 層。
還是要處理剛才的User類,DAO 層仍然是需要的:
@Mapper
public interface AddressListMapper extends BaseMapper<User>{
}
然后在 service 層的接口繼承IService,泛型是User實(shí)體類:
public interface AddressListService extends IService<User> {
/**
* 同步用戶信息到數(shù)據(jù)庫
*/
void saveUsers();
}
最后在 service 的實(shí)現(xiàn)層中,繼承ServiceImpl,泛型中傳入mapper和實(shí)體類:
@Service
public class AddressListServiceImpl extends ServiceImpl<AddressListMapper, User> implements AddressListService {
}
現(xiàn)在就可以使用 mybaits-plus service接口中提供的api了。

我使用的是saveOrUpdateBatch,這個(gè)要注意下,是通過自定義的唯一索引進(jìn)行批量保存更新的,所以我要去實(shí)體類User中使用@TableId標(biāo)記出唯一索性。
/**
* 郵箱
*/
@TableId
private String email;
最后,放上教程鏈接:http://chabaoo.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í)體類注解方法與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ù)庫實(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)目間接依賴包版本與預(yù)期不符原因解決分析
這篇文章主要介紹了Springboot pom項(xiàng)目間接依賴包版本與預(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開發(fā)IDEA環(huán)境搭建與測試的方法
這篇文章主要介紹了Flink開發(fā)IDEA環(huán)境搭建與測試的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Spring Cloud中Eureka開啟密碼認(rèn)證的實(shí)例
這篇文章主要介紹了Spring Cloud中Eureka開啟密碼認(rèn)證的實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧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#),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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

