MybatisPlus常用基本单表操作

文章介绍了如何在Java中使用MyBatis-Plus的QueryWrapper和UpdateWrapper进行查询和更新数据库操作,包括eq、in等条件构造,以及使用lambdaQuery进行方法引用以避免手动输入列名。同时,提到了通过主键查询、条件查询、批量操作和删除等基本数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人博客同步csdn

0.前置知识

不管是查询还是更新,我们需要构造查询条件的时候,都是使用wrapper来完成,如果是构造查询条件就是QueryWrapper,更新则是UpdateWrapper

0.1 QueryWrapper

例如我们查询所有用户名为aaa的用户,应该这样构建查询条件

// 泛型填写你的实体类
QueryWrapper<SysUser> wrapper=new QueryWrapper<>();
// eq代表“equal”,即构建相等条件,第一个参数是数据库表的列名,第二个是查询的值
wrapper.eq("user_name","aaa");
//调用list() 查询所有符合条件的数据并返回List
List<SysUser> users = list(wrapper);

除了eq以外,还有 in 表示某个列的值必须在某个范围里面,如查询id1、2、3、4、5中的用户

List<Integer> ids= Lists.list(1, 2, 3, 4, 5);
QueryWrapper<SysUser> wrapper=new QueryWrapper<>();
wrapper.in("id",ids);
List<SysUser> users = list(wrapper);

除了这些以外,还有一些
在这里插入图片描述

0.2 UpdateWrapper

UpdateWrapperQueryWrapper是基本上一致的,多了一个set方法
例如更新所有用户名为aaa的密码为123456

// 泛型填写你的实体类
UpdateWrapper<SysUser> wrapper=new UpdateWrapper<>();
// eq代表“equal”,即构建相等条件,第一个参数是数据库表的列名,第二个是查询的值
//set方法第一个参数为你想更新的列,第二个是更新的值
wrapper.eq("user_name","aaa")
        .set("password","123456");
//调用update方法,传入更新条件,返回值表示是否更新成功
boolean update = update(wrapper);

0.3 进阶(推荐,重要)

  • 前面我们写的wrapper都必须要手动写数据库表的列名,非常繁琐,而且一不小心还可能写错,并且如果数据库表发生变化可能需要修改所有用到这个列名的地方,并且无法通过IDE的引用跳转。
  • 所以这里引入lambdaQuery,使用方法引用来代替手写的列名

还是以第一个例子来演示:
例如我们查询所有用户名为aaa的用户,应该这样构建查询条件

// 泛型填写你的实体类
List<SysUser> users = list(Wrappers.<SysUser>lambdaQuery()
        .eq(SysUser::getUserName,"aaa"));

使用lambdaQuery

Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUserName,"aaa")

其中SysUser::getUserName就是方法引用,使用实体类的get方法代替我们写的列名user_name

1.查询

1.1 通过主键id查询

直接调用getById()即可

SysUser user = getById(1);

1.2 根据条件查询单条数据

调用getByOne()即可,参数是一个wrapper,但是注意,如果查出来的条数大于1条将会报错抛异常!

SysUser user = getOne(Wrappers.<SysUser>lambdaQuery()
        .eq(SysUser::getUserName,"aaa"));

1.3 获取表中所有的数据

相当于 select * from
直接调用list(),不传参

1.4 获取表指定条件的所有数据

将wrapper作为参数传入list()中即可

List<Integer> ids= Lists.list(1, 2, 3, 4, 5);
List<SysUser> users = list(Wrappers.<SysUser>lambdaQuery()
        .in(SysUser::getId,ids));

2.更新

更新操作实际上与查询操作差不多,都是构建语句
在这里插入图片描述
其中updateBatch则是批量更新
构建lambda的时候,应该是Wrappers.<SysUser>lambdaUpdate()

3.插入

插入是调用save方法,直接传入对象即可完成插入
带有batch的则是批量插入,saveOrUpdate则是插入或更新,它是通过主键判断,在实体类的主键字段上加上@TableId则表示是主键字段
在这里插入图片描述

4.删除

删除调用remove方法,传入一个wrapper表示删除条件即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值