mybatisplus basemapper原理(提供两瓶水)

MybatisPlus为什么提供BaseMapper和IService两个相似CRUD操作的接口?转载自:https://blog.csdn.net/krismile__qh/article/details/99590872熟悉mybatis-plus的人都知道,mybatis-plus提供两种包含预定义增删改查操作的接口:com.baomidou.mybatisplus.core…

大家好,又见面了,我是你们的朋友全栈君。

转载自: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 针对业务逻辑层的实现
  1. 两者提供的方法略有不同
    对比这两个接口,操作都差不多,名字有一点点改变,比如 BaseMapper 里面叫 insert() 的方法,在 IService 里面叫 save()。

其实我也不是很清楚为什么要单独设计 IService 接口,但是两者确实有区别,就是 IService 提供批处理操作,BaseMapper 没有。

  1. 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,显得有些多此一举。

所以,如果你既要使用批处理操作,又要添加自己的数据库操作,那就必须两个接口一起用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128492.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu安装完毕后拔掉u盘_4个CPU最大能开多少进程

    ubuntu安装完毕后拔掉u盘_4个CPU最大能开多少进程该方法同样适用于:1.强制卸载无法卸载的USB设备,比如:解决因为在传输数据未完成时直接拔下存储设备导致的后台D进程驻留(无法被kill);2.系统更新固件可能导致(只遇到过一次)的USB存储设备无法被识别(重启系统同样可以解决);3.不重启系统,只重启xhci控制器。

    2022年9月15日
    0
  • 使用gradle打包jar包

    使用gradle打包jar包

    2021年12月8日
    102
  • android之存储篇_存储方式总览

    作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider。  SQLite: SQLit

    2022年3月10日
    40
  • 均方误差(MSE)「建议收藏」

    均方误差(MSE)「建议收藏」均方误差单独扽概念是很简单的,这里只做介绍,更深一步的内容会在后面列出来。SSE(和方差、误差平方和):ThesumofsquaresduetoerrorMSE(均方差、方差):MeansquarederrorRMSE(均方根、标准差):Rootmeansquarederror数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。MSE是衡量“…

    2022年9月30日
    0
  • ubuntu用pip离线安装python第三方库

    ubuntu用pip离线安装python第三方库1.导出依赖pip3freeze>requirements.txt2.按照依赖下载离线包pip3download-dpackagesDir-rrequirements.txt3.安装离线包whl包、tgz包单个包、目录下的包pip3install–no-index–find-links=“packages_dir”-rrequirements.txt…

    2022年8月27日
    0
  • s3c2440裸机开发环境的搭建

    s3c2440裸机开发环境的搭建s3c2440裸机开发环境的搭建用于arm裸机程序开发的IDE基本有MDK,IAR,还有ADS,也可以选择在linux下安装交叉编译链来进行开发。笔者选择的是MDK作为我进行开发的IDE。下面介绍笔者搭建开发环境的过程。笔者主要参考了两篇博文来进行开发环境的搭建的,分别是:http://blog.csdn.net/mybelief321/article/details/8910528

    2022年5月20日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号