日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis Plus为什么提供BaseMapper和IService两个相似CRUD操作的接口?

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis Plus为什么提供BaseMapper和IService两个相似CRUD操作的接口? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自:https://blog.csdn.net/krismile__qh/article/details/99590872

熟悉 mybatis-plus 的人都知道,mybatis-plus 提供兩種包含預定義增刪改查操作的接口:

com.baomidou.mybatisplus.core.mapper.BaseMapper
com.baomidou.mybatisplus.extension.service.IService
Mybatis-plus提供了2個接口1個類:

BaseMapper 針對dao層的方法封裝 CRUD
IService<M,T> 針對業務邏輯層的封裝 需要指定Dao層類和對應的實體類 是在BaseMapper基礎上的加強
ServiceImpl 針對業務邏輯層的實現
兩者提供的方法略有不同
對比這兩個接口,操作都差不多,名字有一點點改變,比如 BaseMapper 里面叫 insert() 的方法,在 IService 里面叫 save()。
其實我也不是很清楚為什么要單獨設計 IService 接口,但是兩者確實有區別,就是 IService 提供批處理操作,BaseMapper 沒有。

IService是對BaseMapper的擴展
另外,IService 的默認實現 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl 就是調用 BaseMapper 來操作數據庫,所以我猜 IService 是 Java 8 之前對 BaseMapper 所做的擴展,而 Java 8 之后,因為有了 default 方法,ServiceImpl 里面的東西其實都可以移到 BaseMapper 里面了。
除此之外還有就是 IService 依賴于 Spring 容器,而 BaseMapper 不依賴;BaseMapper 可以繼承并添加新的數據庫操作,IService 要擴展的話還是得調用 Mapper,顯得有些多此一舉。

所以,如果你既要使用批處理操作,又要添加自己的數據庫操作,那就必須兩個接口一起用。

總結

以上是生活随笔為你收集整理的Mybatis Plus为什么提供BaseMapper和IService两个相似CRUD操作的接口?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。