当前位置: 首页 > news >正文

Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper<T>, T> 学习总结

作用

当集成Mybatis-Plus 后,我们的大部分数据库操作都可以通过 XxxxxMapper ,同时 Mybatis-plus 在Mapper 提供基本操作方法的同时,也提供类基础的 serviceImpl 来帮助我们完成一些常见的基本操作。

使用

一般情况下,我们首先要建立Entity ,基本操作可以参考 mybatis-plus 基本集成以及使用,分页等

注意里面的标注在Entity 属性上的注解 @TableField 可以忽略不写,会自动适应驼峰式书写规范,大小写拼接处会被替换为 下划线

创建完成entity 后就要创建基本的Mapper 并集成 Mybatis-plus 提供的基础Mapper 完成基础适配
例如:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;@Repository
public interface XxxxMapper extends BaseMapper<XxxxEntity> {
}

然后在我们的service 去集成 Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper, T> 即可,例如:

@Service
@Slf4j
public class XxxxServiceImpl extends ServiceImpl<XxxxMapper, XxxxEntity> implements XxxxService {// ........其他正常的业务注入与业务代码
}

其中 implements XxxxService 为我自己定义的接口类,与框架无关,实际需要的是 extends ServiceImpl<XxxxMapper, XxxxEntity> 这一部分

当继承后,我们将可以直接使用改类内部提供的方法,见下方源码

源码

部分源码如下
在这里插入图片描述
内部向我们提供了 如下公共方法,可以直接使用,甚至还为我们添加了事务回滚
在这里插入图片描述
提供了大量包含事务的批量操作
在这里插入图片描述
在这里插入图片描述
还有大批量的删除操作,也包含了事务
在这里插入图片描述
继承之后基本可以满足我们大部分基础场景的使用。

相关文章:

  • 链表的实现(文末附完整代码)
  • shell之route命令介绍
  • Apipost-Helper:IDEA中的类postman工具
  • 数据结构—内部排序(上)
  • 为 Ubuntu 虚拟机构建 SSH 服务器
  • 【蓝桥杯选拔赛真题66】Scratch画图机器人 少儿编程scratch图形化编程 蓝桥杯创意编程选拔赛真题解析
  • 74hc595模块参考
  • 100127. 给小朋友们分糖果 II
  • asp.net core weapi 结合identity完成登录/注册/角色/权限分配
  • Java核心知识点之常量
  • golang Copier 数据复制
  • 关于<dependencyManagement>和<dependencies>
  • 【第六章】软件设计师 之 数据结构与算法基础
  • Oracle(概念含安装)
  • Maven各方面配置好了却无法显示版本
  • 【Leetcode】101. 对称二叉树
  • 收藏网友的 源程序下载网
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 4个实用的微服务测试策略
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript的使用你知道几种?(上)
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • MobX
  • Mysql5.6主从复制
  • Spring Cloud中负载均衡器概览
  • 简单实现一个textarea自适应高度
  • 那些被忽略的 JavaScript 数组方法细节
  • 全栈开发——Linux
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 一起参Ember.js讨论、问答社区。
  • 优秀架构师必须掌握的架构思维
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 源码安装memcached和php memcache扩展
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​第20课 在Android Native开发中加入新的C++类
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (2)nginx 安装、启停
  • (4)logging(日志模块)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (MATLAB)第五章-矩阵运算
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (理论篇)httpmoudle和httphandler一览
  • (原創) 物件導向與老子思想 (OO)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • . Flume面试题
  • .net core控制台应用程序初识
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net6+aspose.words导出word并转pdf
  • .NET学习全景图
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @staticmethod和@classmethod的作用与区别