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

Mybatisplus-IService

文章目录

  • 简介
    • IService如何继承
    • 基础业务完成
    • 复杂业务逻辑
    • 更简便的Lambda方法
    • 批处理

简介

IService类似于我们的BaseMapper吧
现在就是Service层的那些简单的CRUD也不用写了
下面是方法图
在这里插入图片描述

IService如何继承

不同于Mapper可以直接基础BaseMapper接口不用实现
我们的serviceImpl是要实现ISercice里面的方法,我们肯定不想实现啊,所以提供了一个ServiceImpl类里面实现了IService的方法
在这里插入图片描述
UserService 继承 IService<com.mp.pojo.User>
UserServiceImpl 继承ServiceImpl<UserMapper,User> 实现UserService即可
而且ServiceImpl注入了baseMapper(baseMapper实际上就是UserMapper-多态嘛),所以子类(UserServiceImpl)就不用注入可以直接用
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

基础业务完成

说实话,感觉没啥好写的,类似我们继承BaseMapper的操作
简单操作可以直接在Controller完成(用IService方法),就不用再在service层写方法
这里用了hutool的beanutils,对应的方法见名知意
在这里插入图片描述

复杂业务逻辑

负责的逻辑不能直接通过Service的还是需要写Service的
在这里插入图片描述
Service(这里where不复杂不用自定义sql)
在这里插入图片描述
Mapper
在这里插入图片描述

更简便的Lambda方法

感觉和直接调用Basemapper.方法(LambdaQueryWarpper)差不多
就是多一个new warpper的过程
在这里插入图片描述
然后之前的那个方法就可以改一下
加个乐观锁
比如原来剩下200,a和b都是扣100要,a与b先后查到,a还没扣,b查到的也是剩100,减完,所以相当于-200的操作只-100,所以加个乐观锁,当有别的线程在自己查完但没操作时修改数据,就会放弃本次操作
在这里插入图片描述

批处理

分清
我们的insert into table_name value ()
insert into table_name values (),(),…
效率不同,以及我们后端和mysql是依靠网络请求来操作的
在这里插入图片描述
一次新增操作就会提交,提交相当于一次网络请求,一次一次分别提交很多网络请求性能很低
10w条数据三分钟
在这里插入图片描述
saveBatch()
相当于我们1000条语句先编译,然后一次提交1000条语句让mysql执行
这个其实还是执行insert into table_name value ()
就是一条条数据增加,其实mysql运行耗时没减少,减少的是网络请求的时间
最后运行了26s
在这里插入图片描述
想要
我们的insert into table_name value ()变成
insert into table_name values (),(),…
需要在JDBC加一个参数,在这个后面加就可以
rewriteBatchedStatement=true即可(重写批处理statement)
在这里插入图片描述

相关文章:

  • 零基础学习人工智能
  • 体验 DeepSeek-R1:解密 1.5B、7B、8B 版本的强大性能与应用
  • Spring安装和使用(Eclipse环境)
  • 分布式事务框架--Seata(AT模式)的原理
  • 啥是目标文件?目标文件里面有什么?
  • CAS单点登录(第7版)21.可接受的使用政策
  • ai数字人分身系统开发源码saas化
  • 今日写题04work
  • 为何STL里stack queue没有迭代器
  • .NET版Word处理控件Aspose.Words教程:使用 C# 删除 Word 中的空白页
  • AI 编程工具—Cursor 进阶篇 数据分析
  • 【java】深拷贝和浅拷贝的区别
  • ISO9001质量管理体系 | 设计和开发控制程序
  • LeetCode字符串相关算法题(1)【C语言版】
  • PyQt6/PySide6 线程间通信(Signal/Slot)
  • Hasleo Backup Suite v5.0.2.3 多语种便携版:全能型数据守护神器详解
  • DockerFile优化镜像体积
  • 吸烟(抽烟)检测和识别1:吸烟(抽烟)数据集说明(含下载链接)
  • Java基础知识总结(四十八)--TCP传输、TCP客户端、TCP服务端
  • 蓝桥杯---颜色分类(leetcode第75题)题解
  • 重庆大学:对学术不端行为“零容忍”,发现一例、查处一例
  • 湖北宜昌:在青山绿水间解锁乡村振兴“密码”
  • 巴基斯坦称对印精准打击造成设施损坏和人员伤亡
  • 巴军事行动致印度70%电网瘫痪
  • 中俄就应对美加征所谓“对等关税”等问题进行深入交流
  • 时隔14个月北京怀柔区重启供地,北京建工以3.59亿元摘得