Mybatis-Plus学习之条件构造器

147 阅读1分钟

在上一篇文章中,总结了Spring Boot使用MP以及MP的Service的CRUD接口和Mapper的CRUD接口,本篇文章将继续介绍MP的条件构造器。 官方地址

条件构造器

我们在实际操作工作中操作数据库时候会涉及到很多的条件。所以MP为我们提供了一个功能强大的条件构造器 Wrapper 。使用它可以让我们非常方便的构造条件。

Wrapper

Wapper是AbstractWrapper的父类AbstractWrapper是QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaQueryWrapper) 的父类,本人常用的还是 QueryWrapper 和 UpdateWrapper 他们不仅继承了AbstractWrapper的全部方法 QueryWappeer 中额外提供了用于针对 Select 语法的 select 方法。可以用来设置查询某些列, UpdateWrapper 额外提供了用于针对SET语法的 set 方法。可以用来设置对某些列进行更新。

常用方法

  • eq等于 QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("userName","张三");where条件为 userName = '张三' eq(boolean condition, "userName", "张三"); condition用于判断是否用于条件判断

  • ne:不等于 <> QueryWrapper wrapper = new QueryWrapper(); wrapper.ne("userName","张三"); where条件为 userName <> '张三'

  • gt:大于 >,ge:大于等于≥ QueryWrapper wrapper = new QueryWrapper(); wrapper.gt("userAge",18);where条件为 userAge > 18 wrapper.gt("userAge",18);where条件为 userAge >= 18

  • lt:小于<,le:小于等于≤ QueryWrapper wrapper = new QueryWrapper(); wrapper.lt("userAge",18);where条件为 userAge < 18 wrapper.le("userAge",18);where条件为 userAge <= 18

  • between:相当于SQL中的BETWEEN notBetween 就相当于 SQL的NOTBETWEEN QueryWrapper wrapper = new QueryWrapper(); wrapper.between("userAge",18,36); where条件为 userAge BETWENN 18 and 36 wrapper.notBetween("userAge",18,36); where条件为 userAge NOTBETWENN 18 and 36

  • .like:模糊匹配。like(“userName”,“张”),相当于SQL的nuserName like ‘%张%’;.likeRight:模糊匹配右半边。likeRight(“name”,“张”),相当于SQL的userName like ‘张%’;.likeLeft:模糊匹配左半边。likeLeft(“userName”,“张”),相当于SQL的userName like ‘%张’; .notLike:notLike(“userName”,“张”),相当于SQL的userName not like ‘%张%’

  • in: in(“userAge",{18,28,38})相当于 userAge in(18,28,38)

  • .groupBy: groupBy(“userId”)相当于 group by id

  • .orderByAsc :orderByAsc(“userAge”)相当于 order by userAge ASC;.orderByDesc :orderByDesc (“userAge”)相当于 order by userAge DESC

Lambda条件构造器

Lambda条件构造器的优点:
1.  代码更简洁,可读性更好;
2.  避免硬编码问题;
3.  支持链式调用,可以构建更复杂的查询条件;
4.  支持Lambda表达式,可以更方便地进行条件判断和结果映射。 使用Lambda查询构造器,可以提高我们的开发效率。 示例代码

LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.eq(User::getUserName, "张三")
.ge(User::getUserAge, 18)
.orderByAsc(User::getId);
List<User> users = userMapper.selectList(wrapper);

总结

本文我们介绍了MP的条件构造器并对一些常用方法进行了代码举例,当然MP的条件构造器方法不止这些,大家感兴趣的话可以点击官方网站进行系统的学习,文章如有问题欢迎大家一起指正,希望以后的日子里与大家一起学习共同进步