在上一篇文章中,总结了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的条件构造器方法不止这些,大家感兴趣的话可以点击官方网站进行系统的学习,文章如有问题欢迎大家一起指正,希望以后的日子里与大家一起学习共同进步