Mybatis-Plus接口BaseMapper與Services使用詳解
最近在工作開發(fā)中遇到一個批量新增修改的處理,我使用的是 mybatis-plus,但是在用的 BaseMapper 接口里是沒有這個方法的,后來發(fā)現(xiàn) Service 接口里有這個方法,今天整理一下這2種用法。
一、使用 BaseMapper 接口
MyBatis Plus 提供了通用的 Mapper 接口(即 BaseMapper 接口),該接口對應(yīng)我們的 DAO 層。在該接口中,定義了我們常見的方法簽名,這樣就可以方便我們對表進行操作。例如:查詢(select)、插入(insert)、更新(update)和刪除(delete)操作。
以為項目中的代碼為例,我有一個實體類User
,需要對其進行CRUD,那么我直接在 DAO 層去繼承 BaseMapper 接口即可。
@Mapper public interface UserMapper extends BaseMapper<User> { }
這樣我就可以直接使用里面的各種API了,非常的方便。另外,我發(fā)現(xiàn)了一個mybatis-plus的簡潔教程,可以很方便的查詢一些知識點,文末自取。
但是后來在開發(fā)過程中,發(fā)現(xiàn)BaseMapper
接口中的insert()
不能滿足我的需求了,而在Service
接口中,發(fā)現(xiàn)有個saveOrUpdateBatch()
可以使用,果斷擁抱之。
二、使用 Service 接口
除了 BaseMapper 接口,MyBatis Plus 還提供了 IService 接口,該接口對應(yīng) Service 層。MyBatis Plus 的通用 Service CRUD 實現(xiàn)了 IService 接口,進一步封裝 CRUD。為了避免與 BaseMapper 中定義的方法混淆,該接口使用 get(查詢單行)、remove(刪除)、list(查詢集合)和 page(分頁)前綴命名的方式進行區(qū)別。
這個既然是對應(yīng) Service 接口,那么也就要用在 service 層。
還是要處理剛才的User
類,DAO 層仍然是需要的:
@Mapper public interface AddressListMapper extends BaseMapper<User>{ }
然后在 service 層的接口繼承IService
,泛型是User
實體類:
public interface AddressListService extends IService<User> { /** * 同步用戶信息到數(shù)據(jù)庫 */ void saveUsers(); }
最后在 service 的實現(xiàn)層中,繼承ServiceImpl
,泛型中傳入mapper
和實體類:
@Service public class AddressListServiceImpl extends ServiceImpl<AddressListMapper, User> implements AddressListService { }
現(xiàn)在就可以使用 mybaits-plus service接口中提供的api了。
我使用的是saveOrUpdateBatch
,這個要注意下,是通過自定義的唯一索引進行批量保存更新的,所以我要去實體類User
中使用@TableId
標記出唯一索性。
/** * 郵箱 */ @TableId private String email;
最后,放上教程鏈接:http://www.dbjr.com.cn/article/222180.htm
以上就是Mybatis-Plus接口BaseMapper與Services使用詳解的詳細內(nèi)容,更多關(guān)于Mybatis Plus接口的資料請關(guān)注腳本之家其它相關(guān)文章!
- Mybatis-plus的service通用接口解讀
- Mybatis-plus中IService接口的基本使用步驟
- MyBatis-Plus插件機制及通用Service新功能
- Mybatis-Plus實體類注解方法與mapper層和service層的CRUD方法
- 詳解關(guān)于mybatis-plus中Service和Mapper的分析
- mybatis-plus批處理IService的實現(xiàn)示例
- MyBatis-Plus 通用IService使用詳解
- mybatisplus中返回Vo的案例講解
- mybatis-plus 自定義 Service Vo接口實現(xiàn)數(shù)據(jù)庫實體與 vo 對象轉(zhuǎn)換返回功能
相關(guān)文章
Springboot pom項目間接依賴包版本與預(yù)期不符原因解決分析
這篇文章主要介紹了Springboot pom項目間接依賴包版本與預(yù)期不符原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08java實現(xiàn)動態(tài)時鐘并設(shè)置鬧鐘功能
這篇文章主要為大家詳細介紹了java實現(xiàn)動態(tài)時鐘并設(shè)置鬧鐘功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Flink開發(fā)IDEA環(huán)境搭建與測試的方法
這篇文章主要介紹了Flink開發(fā)IDEA環(huán)境搭建與測試的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03Lombok之@AllArgsConstructor的使用方式
這篇文章主要介紹了Lombok之@AllArgsConstructor的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09emoji表情與unicode編碼互轉(zhuǎn)的實現(xiàn)(JS,JAVA,C#)
這篇文章主要介紹了emoji表情與unicode編碼互轉(zhuǎn)的實現(xiàn)(JS,JAVA,C#),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01java實現(xiàn)輸出字符串中第一個出現(xiàn)不重復(fù)的字符詳解
這篇文章主要介紹了java實現(xiàn)輸出字符串中第一個出現(xiàn)不重復(fù)的字符詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04關(guān)于SpringBoot自定義條件注解與自動配置
這篇文章主要介紹了關(guān)于SpringBoot自定義條件注解與自動配置,Spring Boot的核心功能就是為整合第三方框架提供自動配置,而本文則帶著大家實現(xiàn)了自己的自動配置和Starter,需要的朋友可以參考下2023-07-07