BaseMapper中提供的方法(17种CRUD)

BaseMapper封装的17种增删改查方法

MybatisPlus框架中mapper层继承了BaseMapper接口,该接口中封装了常用的增删改查方法,共有17种,以下是方法的详情介绍

首先需要明确的括号内的一些对象定义

  • 泛型T:实体类类型
  • @Param注解:指定了参数名称
  • et:实体类对象
  • ew:查询条件wrapper对象

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

1.插入一条数据 int insert(T entity)

   T entity = new T(); // 创建实体对象baseMapper.insert(entity); // 插入数据

2.根据主键id删除数据 int deleteById(Serializable id)

   Serializable id = 1L; // 要删除的实体的主键ID=xxxbaseMapper.deleteById(id); // 删除数据

3.map集合根据条件删除数据 int deleteByMap(@Param(“cm”) Map<String, Object> columnMap)

   Map<String, Object> columnMap = new HashMap<>();//创建一个map集合存放符合删除条件需要删除的数据columnMap.put("name", "wonwoo"); // 设置删除条件,比如name字段等于"wonwoo",将name字段等于"wonwoo"的数据放入创建的map集合baseMapper.deleteByMap(columnMap); // 删除满足条件的数据

4.高级查询根据条件删除数据 int delete(@Param(“ew”) Wrapper wrapper)

   // 创建Wrapper对象,设置删除条件LambdaQueryWrapper<T> wrapper = new LambdaQueryWrapper<>();wrapper.eq(T::getName, "wonwoo"); // 设置删除条件,比如name字段等于"wonwoo"baseMapper.delete(wrapper); // 删除满足条件的数据

5.根据主键id批量删除数据 int deleteBatchIds(@Param(“coll”) Collection<? extends Serializable> idList)

   Collection<? extends Serializable> idList = Arrays.asList(1L, 2L, 3L); // 要删除的实体的主键ID列表baseMapper.deleteBatchIds(idList); // 批量删除数据

6.根据主键id更新数据 int updateById(@Param(“et”) T entity)

   T entity = new T(); // 创建实体对象entity.setId(1L); // 设置要更新的实体的主键IDbaseMapper.updateById(entity); // 更新数据

7.高级查询根据条件更新数据 int update(@Param(“et”) T entity, @Param(“ew”) Wrapper updateWrapper)

   T entity = new T(); // 创建实体对象// 创建Wrapper对象,设置更新条件LambdaUpdateWrapper<T> updateWrapper = new LambdaUpdateWrapper<>();updateWrapper.eq(T::getName, "wonwoo"); // 设置更新条件,比如name字段等于"wonwoo"baseMapper.update(entity, updateWrapper); // 更新满足条件的数据

8.根据主键id查询数据 T selectById(Serializable id)

    Serializable id = 1L; // 要查询的实体的主键IDT entity = baseMapper.selectById(id); // 查询数据

9.根据主键ID批量查询数据 List selectBatchIds(@Param(“coll”) Collection<? extends Serializable> idList)

    Collection<? extends Serializable> idList = Arrays.asList(1L, 2L, 3L); // 要查询的实体的主键ID列表List<T> entityList = baseMapper.selectBatchIds(idList); // 批量查询数据

10.根据条件查询数据 List selectByMap(@Param(“cm”) Map<String, Object> columnMap)

    Map<String, Object> columnMap = new HashMap<>();columnMap.put("name", "wonwoo"); // 设置查询条件,比如name字段等于"wonwoo"List<T> entityList = baseMapper.selectByMap(columnMap); // 查询满足条件的数据

11.根据条件查询单条数据 T selectOne(@Param(“ew”) Wrapper queryWrapper)

    // 创建Wrapper对象,设置查询条件LambdaQueryWrapper<T> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(T::getName, "wonwoo"); // 设置查询条件,比如name字段等于"wonwoo"T entity = baseMapper.selectOne(queryWrapper); // 查询满足条件的数据

12.根据条件查询数据总数 Integer selectCount(@Param(“ew”) Wrapper queryWrapper)

    // 创建Wrapper对象,设置查询条件LambdaQueryWrapper<T> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(T::getName, "wonwoo"); // 设置查询条件,比如name字段等于"wonwoo"int count = baseMapper.selectCount(queryWrapper); // 查询满足条件的数据总数

13.根据条件查询数据列表 List selectList(@Param(“ew”) Wrapper queryWrapper)

    // 创建Wrapper对象,设置查询条件LambdaQueryWrapper<T> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(T::getAge, 18); // 设置查询条件,比如age字段等于18List<T> entityList = baseMapper.selectList(queryWrapper); // 查询满足条件的数据列表

14.根据条件查询数据列表,并返回Map集合 List<Map<String, Object>> selectMaps(@Param(“ew”) Wrapper queryWrapper)

    // 创建Wrapper对象,设置查询条件LambdaQueryWrapper<T> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(T::getAge, 18); // 设置查询条件,比如age字段等于18List<Map<String, Object>> mapList = baseMapper.selectMaps(queryWrapper); // 查询满足条件的数据列表,并返回Map集合

15.根据条件查询的父类 List selectObjs(@Param(“ew”) Wrapper queryWrapper)

16.根据条件分页查询数据 <E extends IPage> E selectPage(E page, @Param(“ew”) Wrapper queryWrapper)

    // 创建Wrapper对象,设置查询条件LambdaQueryWrapper<T> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(T::getAge, 18); // 设置查询条件,比如age字段等于18Page<T> page = new Page<>(1, 10); // 创建分页对象,设置当前页和每页显示数量IPage<T> pageResult = baseMapper.selectPage(page, queryWrapper); // 分页查询满足条件的数据List<T> entityList = pageResult.getRecords(); // 当前页的数据列表long total = pageResult.getTotal(); // 总记录数

17.根据条件分页查询(返回Map结果)<E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param(“ew”) Wrapper queryWrapper)

Page<Map<String, Object>> mapPage = userMapper.selectMapsPage(page, queryWrapper);

总结

public interface UserMapper extends BaseMapper<User> {// 这里继承了BaseMapper中的所有方法,可以直接使用
}@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public void example() {// 1. 根据ID查询User user1 = userMapper.selectById(1L);// 2. 插入数据User user = new User();user.setName("wonwoo");userMapper.insert(user);// 3. 更新数据user.setName("dk");userMapper.updateById(user);// 4. 根据ID删除userMapper.deleteById(user.getId());// 5. 根据条件查询QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.eq("name", "dk");List<User> users = userMapper.selectList(queryWrapper);// 6. 根据条件查询(返回Map结果)Map<String, Object> map = userMapper.selectMaps(queryWrapper);// 7. 根据条件分页查询Page<User> page = new Page<>(1, 10);queryWrapper.eq("name", "dk");Page<User> userPage = userMapper.selectPage(page, queryWrapper);// 8. 根据条件分页查询(返回Map结果)Page<Map<String, Object>> mapPage = userMapper.selectMapsPage(page, queryWrapper);// 9. 根据ID批量查询List<User> usersByIds = userMapper.selectBatchIds(Arrays.asList(1L, 2L, 3L));// 10. 根据条件查询一条数据User one = userMapper.selectOne(queryWrapper);// 11. 根据条件查询总记录数Integer count = userMapper.selectCount(queryWrapper);// 12. 根据ID批量删除userMapper.deleteBatchIds(Arrays.asList(1L, 2L, 3L));// 13. 根据条件批量删除userMapper.delete(queryWrapper);// 14. 根据ID批量更新user.setName("wonwoo");userMapper.updateById(user);// 15. 根据条件批量更新user.setName("dk");userMapper.update(user, queryWrapper);// 16. 根据ID批量插入userMapper.insertBatch(Arrays.asList(user1, user2));

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

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

相关文章

iPhone解锁 AnyMP4 iPhone Unlocker

AnyMP4 iPhone Unlocker是一款功能强大的iPhone解锁软件&#xff0c;旨在帮助用户轻松解决iPhone密码忘记、设备锁定等问题。无论是屏幕密码、指纹解锁还是Face ID&#xff0c;该软件都能提供有效的解决方案。 这款软件支持多种iPhone型号&#xff0c;包括最新的iPhone 14系列…

2.3_9 吸烟者问题

2.3_9 吸烟者问题 问题描述 问题分析 假设一个系统有三个抽烟者进程和一个供应者进程。每个抽烟者不停地卷烟并抽掉它&#xff0c;但是要卷起并抽掉一支烟&#xff0c;抽烟者需要有三种材料&#xff1a;烟草、纸和胶水。三个抽烟者中&#xff0c;第一个拥有烟草、第二个拥有纸…

泛娱乐社交出海洞察,Flat Ads解锁海外增长新思路

摘要:解读泛娱乐社交应用出海现状与趋势,解锁“掘金”泛娱乐社交出海赛道新思路。 根据全球舆情监测机构 Meltwater 和社交媒体机构We are Social最新发布数据显示,全球社交媒体活跃用户数量已突破50亿,约占世界人口总数62.5%。庞大的用户数量意味着广阔的增量空间,目前,随着全…

使用HCPpipelines分割皮层

前段时间阅读了一篇文献,文章的做法我比较感兴趣,所以打算学习一下文献的做法。文章的最开始一部分是使用HCPpipelines对T1和T2像进行皮层分割,调用的是freesurfer6。https://github.com/Washington-University/HCPpipelines 一、工作环境准备 1.安装好FSL,版本在6.0.2以上…

Linux环境下配置HTTP代理服务器教程

大家好&#xff0c;我是你们可爱的Linux小助手&#xff01;今天&#xff0c;我将带你们一起探索如何在Linux环境下配置一个HTTP代理服务器。请注意&#xff0c;这不是一次火箭科学的实验&#xff0c;而是一次简单而有趣的冒险。 首先&#xff0c;我们需要明确什么是HTTP代理服…

Unity AnimationRigging无法修改权重?

个人理解&#xff0c;已解决无法修改权重的问题: unity自带的动画系统是在FixUpdate和Update之后LateUpdate之前执行&#xff0c;如果在这FixedUpdate或Update函数内更新AnimationRigging内的权重后&#xff0c;内部动画系统会覆盖权重的修改&#xff0c;导致无法正确更新&…

通过docker-compose部署NGINX服务,并使该服务开机自启

要在通过docker-compose部署的NGINX服务实现开机自启&#xff0c;你需要确保Docker守护进程在系统启动时自动运行&#xff0c;并配置docker-compose.yml文件以在容器中运行NGINX服务。以下是步骤&#xff1a; 确保Docker守护进程开机启动&#xff1a; 在Ubuntu/Debian上&#x…

FL Studio21最新正式版更新下载及实用功能详解

FL Studio 21是一款功能强大的音乐制作软件&#xff0c;它经历了多个版本的更新&#xff0c;每次更新都会增加新的功能和优化现有功能&#xff0c;提高用户体验和工作效率。以下是FL Studio 21的一些版本更新、功能特点以及下载方式的介绍&#xff1a; 版本更新&#xff1a; F…

C++判断回文字符串的两种方法

解法1&#xff1a;遍历一半字符串 若字符串个数为奇数遍历到n/2 若为偶数则遍历到n/2-1中间最后只剩一个字符不需判断 &#xff08;int是向下取整的&#xff09; 假设字符串长度为len&#xff0c;字符下标从0~len-1 先看第0个和第len-1字符是否相同&#xff0c; 在看第1和第…

20240203在WIN10下使用GTX1080配置stable-diffusion-webui.git不支持float16精度出错的处理

20240203在WIN10下使用GTX1080配置stable-diffusion-webui.git不支持float16精度出错的处理 2024/2/3 21:23 缘起&#xff1a;最近学习stable-diffusion-webui.git&#xff0c;在Ubuntu20.04.6下配置SD成功。 不搞精简版本&#xff1a;Miniconda了。直接上Anacoda&#xff01; …

IT行业针对大数据的安全文件传输的重要性

在数字化浪潮的推动下&#xff0c;数据已成为现代社会的宝贵资源。特别是大数据&#xff0c;以其海量、多样化、高速增长和低价值密度的特性&#xff0c;对信息技术&#xff08;IT&#xff09;行业产生了深远影响。大数据的应用不仅推动了云计算、物联网和人工智能等领域的发展…

【Docker】Docker Image(镜像)

文章目录 一、Docker镜像是什么&#xff1f;二、镜像生活案例三、为什么需要镜像四、镜像命令详解docker rmidocker savedocker loaddocker historydocker image prune 五、镜像操作案例六、镜像综合实战实战一、离线迁移镜像实战二、镜像存储的压缩与共享 一、Docker镜像是什么…

面试官都爱看的作品集,你做对了吗?

经常有朋友在群里问作品集的相关问题:设计师不知道从哪里开始作品集&#xff0c;觉得自己拿不到作品&#xff0c;作品集没有亮点&#xff0c;真的不知道怎么改进&#xff0c;作品集投递后没有回应&#xff0c;很受打击。 针对这些问题&#xff0c;我们将向您展示如何调整和改进…

正点原子--STM32基本定时器学习笔记(2)

目录 1. 相关寄存器介绍 1.1 控制寄存器 1(TIMx_CR1)​编辑 1.2 DMA/中断使能寄存器(TIMx_DIER) 1.3 状态寄存器(TIMx_SR) 1.4 计数器(TIMx_CNT) 1.5 预分频器(TIMx_PSC) 1.6 自动重装载寄存器(TIMx_ARR) 2. 工程建立 3. 导入tim.c文件 4. 相关HAL库函数介绍 4.1 H…

[linux]-总线,设备,驱动,dts

1. 总线BUS 在物理层面上&#xff0c;代表不同的工作时序和电平特性&#xff1a; 总线代表着同类设备需要共同遵守的工作时序&#xff0c;不同的总线对于物理电平的要求是不一样的&#xff0c;对于每个比特的电平维持宽度也是不一样&#xff0c;而总线上传递的命令也会有自己…

动态扩缩容下的全局流水号设计

关于全局流水号&#xff0c;业内用的比较多的就是雪花算法&#xff0c;一直没理解在动态扩缩容下其中的workId和 datacenterId如何设置&#xff0c;查到了几个方法&#xff1a;reidis中取&#xff0c;待后期实践下。 先简单的介绍一下雪花算法&#xff0c;雪花算法生成的Id由…

零代码3D可视化快速开发平台

老子云平台 老子云3D可视化快速开发平台&#xff0c;集云压缩、云烘焙、云存储云展示于一体&#xff0c;使3D模型资源自动输出至移动端PC端、Web端&#xff0c;能在多设备、全平台进行展示和交互&#xff0c;是全球领先、自主可控的自动化3D云引擎。此技术已经在全球申请了专利…

6.0 Zookeeper session 基本原理详解教程

客户端与服务端之间的连接是基于 TCP 长连接&#xff0c;client 端连接 server 端默认的 2181 端口&#xff0c;也就 是 session 会话。 从第一次连接建立开始&#xff0c;客户端开始会话的生命周期&#xff0c;客户端向服务端的ping包请求&#xff0c;每个会话都可以设置一个…

飞天使-k8s知识点13-kubernetes散装知识点2-statefulsetdaemonset

文章目录 RC RS DeploymentStatefulSet有状态服务控制器DaemonSet守护进程与任务job cronjob RC RS Deployment StatefulSet有状态服务控制器 statefulset StatefulSet 是 Kubernetes 1.9 版本引入的一个新的 API 对象&#xff0c;主要用于处理有状态的服务。StatefulSet 与 De…

12.JavaScript(WebAPI) - JS api文献精解

文章目录 1.WebAPI 背景知识1.1什么是 WebAPI1.2什么是 API1.3API 参考文档 2.DOM 基本概念2.1什么是 DOM2.2DOM 树 3.获取元素3.1querySelector3.2querySelectorAll 4.事件初识4.1基本概念4.2事件三要素4.3简单示例 5.操作元素5.1获取/修改元素内容5.1.1innerText5.1.2innerHT…