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操作的接口?相关推荐
- 多元统计分析matlab,MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法...
MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法: 1.层次聚类hierarchical clustering 2.k-means聚类 这里用最简单的实例说明以下层次聚类原理和应用发 ...
- mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- 用于MyBatis CRUD操作的Spring MVC 3控制器
到目前为止,我们已经为域类" User "创建了CRUD数据库服务,并且还将MyBatis配置与Spring Configuration文件集成在一起. 接下来,我们将使用Spri ...
- Android中实现SQLite数据库CRUD操作的两种方式
Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...
- mybatis mysql crud_Mybatis实现CRUD操作
Mybatis实现CRUD操作 导入相关依赖 创建实体类User 创建Mybatis主配置文件:SqlMapConfig.xml 创建IUserDao接口. 创建于接口对应的映射配置文件:IUserD ...
- MyBatis学习存档(4)——进行CRUD操作
使用MyBatis进行数据库的CRUD操作有2种方式:一种如之前所说的接口+xml,而另一种是通过对接口上的方法加注解(@Select @Insert @Delete @Update) 但是通常情况下 ...
- 2021年3月8日:MyBatis框架学习笔记02:利用MyBatis实现CRUD操作
MyBatis框架学习笔记02:利用MyBatis实现CRUD操作 在第一节课中我们在UserMapper.xml里定义了两个查询语句:findById和findAll,对应的在UserMapper接 ...
- Mybatis框架实现CRUD操作
Mybatis框架实现CRUD操作 自定义mybatis流程 mybatis基于代理dao的CRUD操作(重点) E:\JAVAworkspace\mybatis_CRUD CRUD中可能遇到的问题: ...
- MyBatis 3(2)实体映射 CRUD 操作(XML/注解方式)
MyBatis 实体映射 Mybatis 配置数据映射主要有 2 种方式,通过 XML 配置文件进行,通过注解进行: Mybatis 对于实体映射是通过接口调用的方式,在底层上使用 Java 的动态代 ...
最新文章
- Vertica 分区表设计(续)
- 神仙打架激辩深度学习:LeCun出大招,马库斯放狠话,机器学习先驱隔空“互怼”...
- SDNU 1474.特殊回文数(水题)
- Codeforces Round #453 (Div. 1) D. Weighting a Tree 构造 + dfs树
- c++实现简单线程池代码
- mysql 半同步 5.6及5.7
- hdu2026.java字符
- c语言 冒泡排序算法,排序算法_冒泡排序改进(c语言实现)
- 对服务器端接口的调用,自己手写了一个脚本,但返回信息的中文总是乱码(这个方法很不错,重要的是解决思路,寻找手写脚本与录制脚本 生成目录文件的区别)...
- word添加自定义样式(导入normal.dotm)
- Ubuntu 16 NFS的安装与使用
- 题目1035:找出直系亲属 树
- 2022年河北二级建造师建设工程施工管理《施工合同管理》练习及答案
- 大数据工程师需要哪些基础知识?
- AccountManager 数据库存储位置
- Selenium滚动条处理
- 强大的字体编辑器推荐,设计属于自己的字体
- windows删除顽固文件
- win10或者win11老是出现Amd的驱动问题 网上说的都是win10或者win11会自动回滚驱动
- C语言宏定义的几个坑和特殊用法