MyBatis-Plus通用Service快速实现赠三改查[MyBatis-Plus系列] - 第489篇

news2024/11/25 19:38:37

历史文章(文章累计480+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

MyBatis-Plus快速实现增删改[MyBatis-Plus系列] - 第483篇

MyBatis-Plus实现普通查询/分页查询[MyBatis-Plus系列] - 第484篇

使用LambdaQueryWrapper再也不担心字段拼写错误了 [MyBatis-Plus系列] - 第485篇

表名注解/主键注解/字段注解/乐观锁注解[MyBatis-Plus系列] - 第486篇

悟纤:师傅,你说何为相处舒服

师傅:两个人相处的最佳状态,就是在一起很舒服,你可以做你想做的任何事情,不用去掩饰;不用去担心会在他(她)面前出丑;说话可以不过大脑;即使两个人在一起什么都不说也不会感觉尴尬。

悟纤:那么,怎么才可以让两个人相处感觉舒服呢?

师傅:产生幸福感:两个人在一起,无论在何时何地、在做什么,都能感觉到发自内心的幸福和安心。有的时候甚至是只要想起他(她),嘴角就会不自觉的上扬。

师傅:乐于付出:两个人愿意不求回报的为对方付出,当然这个付出不是言情剧里狗血的牺牲。主要是指在相处中愿意为对方做更多的事情,比如:主动承担家务、共同面对困难、生病时悉心照料陪伴等,体贴的为对方承担一部分风雨并不求回报。

师傅:共同进步:两个人在一起一种最佳的状态就是:一起努力,共同进步。愿意为了对方使自己变得更加优秀、更加强大,并能够相互匹配得上对方的优秀。只有双方前进的步伐一致,关系才能走的更远。

师傅:还有就是所谓的三观相近、为对方着想等等。

悟纤:师傅,感觉真是活到老,学到老,还有好多没学了。

师傅:学习永无止境…

悟纤:有师傅真好~ 和师傅相处就是舒服!

导读

Hi,大家好,我是悟纤。过着爱谁谁的生活,活出不设限的人生。

在前面学习了BaseMapper封装了常见的数据库增删改查操作,在实际的项目中,控制层并不会直接操作数据层,中间还有一层服务层,所以对于服务层的增删改查操作,MyBatis-Plus进行了封装:通用 Service CRUD 封装IService接口。

👇🏻👇🏻👇🏻EasyPoi实战系列

01.《MyBatis-Plus是什么以及特性[MyBatis-Plus系列]》

02.《MyBatis-Plus快速开始 [MyBatis-Plus系列]》

03.《MyBatis-Plus快速实现增删改 [MyBatis-Plus系列]》

04.《MyBatis-Plus实现普通查询/分页查询[MyBatis-Plus系列]》

05.《使用LambdaQueryWrapper再也不担心字段拼写错误了 [MyBatis-Plus系列]》

06.《表名注解/主键注解/字段注解/乐观锁注解[MyBatis-Plus系列]》

一、Service CRUD实操

通用 Service CRUD 封装IService 接口,进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆。

建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类。

那具体如何进行使用呢?我们拿之前的User(UserMapper)来进行讲解。

1.1 service接口继承IService

定义服务接口UserService,并且继承接口IService:

package com.kfit.user.service;import com.baomidou.mybatisplus.extension.service.IService;import com.kfit.user.model.User;/** * author:悟纤「公众号SpringBoot」 * date:2023/9/7 */public interface UserService extends IService<User> {    }

1.2 service实现类继承ServiceImpl

定义服务接口UserService的实现类UserServiceImpl,并且继承实现类ServiceImpl:

package com.kfit.user.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.kfit.user.mapper.UserMapper;import com.kfit.user.model.User;import com.kfit.user.service.UserService;import org.springframework.stereotype.Service;/** * author:悟纤「公众号SpringBoot」 * date:2023/9/7 */@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {}

1.3测试UserService

到这里就可以测试UserService了,因为已经具备了常规的增删改查方法:

package com.kfit;import com.kfit.user.model.User;import com.kfit.user.service.UserService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;/** * author:悟纤「公众号SpringBoot」 * date:2023/9/7 */@SpringBootTestpublic class UserServiceTest {    @Autowired    private UserService userService;    @Test    public void testSave(){        User user = new User();        user.setName("悟纤2023");        user.setEmail("bb@qq.com");        userService.save(user);    }    @Test    public void testUpdate(){        User user = new User();        user.setId(1L);        user.setName("Jone 2023");        userService.updateById(user);    }}

其它的方法,可以根据需要进行了解,常见的操作基本上都有了。

小结

本文主要介绍了Service层的CRUD,大体的使用思路是:

(1)service接口继承IService:定义一个接口如UserService,继承接口IService<T>

(2)service实现类继承ServiceImpl:定义服务接口UserService的实现类UserServiceImpl,并且继承实现类ServiceImpl。

 点赞、转发、评论,伸出你的双手666…


 

 你就是你,不一样的小蚂蚁!

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟纤学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

ShardingJDBC分库分表:http://t.cn/A6ZarrqS

分布式事务解决方案:http://t.cn/A6ZaBnIr

JVM内存模型调优实战:http://t.cn/A6wWMVqG

Spring入门到精通:https://t.cn/A6bFcDh4

大话设计模式之爱你:https://dwz.cn/wqO0MAy7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

综述 | 关于点云配准的全面综述(二)

原创 | 文 BFT机器人 05 基于优化的配准方法 基于优化的方法的关键思想是开发复杂的优化策略来实现方程&#xff08;1&#xff09;中非线性问题的最优解。 由于同源挑战的影响&#xff0c;这个非线性问题变得具有挑战性。图&#xff08;2a&#xff09;总结了该类别的主要过程。…

从零开始之了解电机及其控制(11)实现空间矢量调制

广泛地说&#xff0c;空间矢量调制只是将电压矢量以及磁场矢量在空间中调制到任意角度&#xff0c;通常同时最大限度地利用整个电压范围。 其他空间矢量调制模式确实存在&#xff0c;并且根据您最关心的内容&#xff0c;它们可能值得研究。 如何实际执行这种所谓的交替反向序列…

看看属猴人性格及近几年的运势怎么样?

属猴的人五行主金&#xff0c;乃是申金之所在&#xff0c;金旺之人&#xff0c;外显懒散&#xff0c;内心富有主见&#xff0c;行事坚定&#xff0c; 有贯彻始终之斗志&#xff0c;与他人合作融洽&#xff0c;且得以财运颇多&#xff1b; 主金&#xff0c;杀伐果决、精明干练&a…

PHP各种老版本下载方式

最近因工作需要&#xff0c;要下载PHP7.3的最新版本版本。 PHP官网上提供了各种老版本下载地址&#xff1a; https://windows.php.net/downloads/releases/archives/ 下载速度不稳定&#xff0c;时快时慢。 使用前&#xff0c;给下载留足时间。 貌似晚上速度快一些。

gif怎么转换成视频MP4?

gif怎么转换成视频MP4&#xff1f;GIF动图已成为一种风靡网络的流行的特殊图片文件&#xff0c;其循环播放和逐帧呈现的特点使其在社交媒体、聊天应用等场合广泛应用&#xff0c;平时我们进行群聊是&#xff0c;大家总会一些gif动态表情的出现而感觉非常的开行&#xff0c;gif动…

Android12之容器类SortedVector、KeyedVector、Vector、VectorImpl总结(一百六十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

极致增长 | NetMarvel 程序化广告最大化广告变现收益

程序化广告已彻底改变广告主触达目标受众的方式。 从早期传统人工售卖流量&#xff0c;到流量平台推出广告联盟&#xff0c;从程序化交易到利用算法和机器学习实时计算买卖广告空间&#xff0c;通过逐渐精微的数据来测评不同渠道、不同受众的广告效果&#xff0c;提高广告主的…

datart:Invalid database configuration. Datart is running in demo mode

datart在IDEA配置好数据库连接之后&#xff0c;启动&#xff0c;报错&#xff1a; 【********* Invalid database configuration. Datart is running in demo mode *********】 原因是缺少一个变量 config 增加即可&#xff1a; 再次启动&#xff0c;就不会报无效数据库配置了…

百华鞋业董事长牛兴华应邀出席德国前总统武尔夫欢迎宴会

2023年9月25日&#xff0c;德国前总统克里斯蒂安-武尔夫&#xff08;Christian Wullff&#xff09;一行来华访问期间&#xff0c;于上海新华联索菲特举办2023中德交流领袖论坛暨武尔夫总统欢迎晚宴。百华鞋业董事长牛兴华先生受邀出席&#xff0c;并受到武尔夫的亲自接见。 山东…

关于NVIC 中断控制器的中断配置。

以下图片均来自NVIC控制器内容。 M3处理器仅实现了每个81个中断&#xff0c;每个中断的优先级由高4位控制。 这里的组优先级我认为是抢占式优先级。

多线程批量下载ERA5逐日数据

介绍 这篇博文主要是整了和ERA5官方参考文档和网上现有的代码&#xff0c;从而实现ERA5逐日数据的批量下载**&#xff08;可指定时区&#xff09;**。 先前准备 在使用python批量下载ERA5逐日数据前我们需要手动配置一下cdsapi 1.访问&#xff1a;CDS官网并注册账号 2.注册好…

掌动智能:UI自动化测试工具的重要性和应用

在软件开发过程中&#xff0c;测试是至关重要的环节。而UI自动化测试工具则成为了测试团队提高效率、降低成本、保证软件质量的重要利器。本文将介绍UI自动化测试工具的概念和重要性&#xff0c;并探讨其在软件开发中的应用和好处。 一、UI自动化测试工具的概念 UI自动化测试工…

获奖作品展示 | 2023嵌入式大赛AidLux系列作品精彩纷呈

第六届&#xff08;2023&#xff09;全国大学生嵌入式芯片与系统设计竞赛应用赛道全国总决赛已于8月下旬圆满结束。 本届赛事中&#xff0c;AidLux是广和通5G智能物联网赛题的唯一软件支持&#xff0c;阿加犀为该赛题学生们提供了全程线上辅导、技术答疑&#xff0c;以及大赛专…

VR庆中秋丨奇幻月景邀您共赏!

中秋佳节&#xff0c; 如何来一场别开生面的云游月景体验&#xff1f; 3DVR技术开启中秋过节新姿势&#xff0c; 嫦娥奔月伴玉兔、 太白花间饮美酒、 吴刚月下伐桂树…… 立体化还原璀璨的传统中秋文化&#xff0c; 还有趣味猜灯谜活动&#xff0c; 丰富豪礼等你来拿&a…

Coovally模型探索:高效下载并使用Hugging Face Transformers预训练模型

Hugging Face Transformers 是一个用于自然语言处理&#xff08;NLP&#xff09;的开源库&#xff0c;提供了各种预训练模型。这些模型被广泛应用于各种任务&#xff0c;如文本分类、命名实体识别、问答、文本生成等。Transformers库易于使用&#xff0c;可方便地集成到现有的深…

归并(merge)排序

归并&#xff08;merge&#xff09;排序也是采用分而治之的思想&#xff0c;其采用二分法将待排列数组分成若干个子数组。然后将相邻的子数组进行归并成新的有序子数组&#xff0c;然后在新的子数组的基础上在进行归并成新的有序数组&#xff0c;直至归并成一个整体有序的数组。…

源码编译postgresql

没什么好研究的了&#xff0c;就试试编译Postgresql源码&#xff0c;按照网站查的资料一步步测试的&#xff0c;方便后期定制数据库时候用&#xff0c;也算是开源的大优势了&#xff0c;只要你愿意折腾&#xff0c;可以自己定制或改进一个数据库来满足特殊业务。后面研究一下他…

Python 练习100实例(1-20)

Python 练习实例1 题目&#xff1a;有四个数字&#xff1a;1、2、3、4&#xff0c;能组成多少个互不相同且无重复数字的三位数&#xff1f;各是多少&#xff1f; 程序分析&#xff1a;可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 …

The Reversal Curse: LLMs trained on “A is B“ fail to learn “B is A“

(not an original, only classified as one to avoid cramming reference links) paper: https://owainevans.github.io/reversal_curse.pdf blog with interactions with the authors: Paper: LLMs trained on “A is B” fail to learn “B is A” — LessWrong This is a…

#硬件电路设计VL817-Q7(B0)芯片拓展USB3.0一转四调试心得

供电电路 基于XL4005的电源供电电路 SS34肖特基二极管 ZMM5V1稳压二极管 SMAJ15A TVS &#xff08;注意这个封装搞错5V会短接&#xff09; Vout0.8*[1(R2R3)/R1] D14 SR05静电防护器件 一路稳压两路TVS 共模电感 &#xff1a; 型号&#xff1a; SDCW2012-2-900TF 品牌&#…