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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • webpack基础打包命令_webpack打包原理

    webpack基础打包命令_webpack打包原理没有配置文件的打包如果我们没有使用配置文件webpack.config.js,那么我们就需要通过命令来打包案例我们首先创建一个webpackTest文件夹,然后在文件夹中再创建2个子文件夹dis

  • DM7.0在VM-中标麒麟NeoKylin虚拟机上安装[通俗易懂]

    DM7.0在VM-中标麒麟NeoKylin虚拟机上安装[通俗易懂]DM7.0在VM-中标麒麟虚拟机上安装一、环境准备(VM安装中标麒麟虚拟机)1、安装vm14+中标麒麟6(NeoKylinLinxServer6forx86-64操作系统)挂载信息:注意点:具体过程可参考一下文章【磁盘分区】https://jingyan.baidu.com/article/15622f247dd805fdfcbea5e0.html【VM下安…

  • Redis——Windows安装

    本篇只谈安装,后续会深入讲解Redis,比如它的内存管理,快照,订阅等待。针对不同的用户,Redis有Windows和Linux两种环境安装,官网上下的是Statble版是Linux,大家一定要注意。由于本人做本地端,所以以下谈的是Windows安装。本文Redis下载地址:https://github.com/MSOpenTech/redis/releases,今天介绍,Redis版本用…

  • pycharm更改字体大小_pycharm改字号

    pycharm更改字体大小_pycharm改字号目录修改导航栏字体大小修改代码字体大小修改主题修改导航栏字体大小1.进入settings》Appearance&Behavior》Appearance里。2.勾选susecustomfont,修改size字体大小修改代码字体大小1.进入settings》Editor》Font里。2.在…

  • 永远用小的结果集驱动大的结果集

    永远用小的结果集驱动大的结果集

  • 什么是是JAVA构造函数

    什么是是JAVA构造函数每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为…

发表回复

您的电子邮箱地址不会被公开。

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