MybatisPlus-条件查询方式及多条件构建查询(亲测)

一、条件查询方式

取消Spring日志打印

取消SpringBoot和MyBatisPlus的log打印

二、多条件构建查询

格式一:常规格式

格式二:链式编程格式

格式三:lambda格式(推荐)

格式四:lambda格式(推荐)

并且(and)

或者(or)

一、条件查询方式
MyBatisPlus将书写复杂的SQL查询条件进行封装,使用编程的形式完成查询条件的组合。

在上几篇博客,查询所有和分页查询,都能看到wrapper类,这个类就是用来构建查询条件的。

取消Spring日志打印
测试的时候,如果觉得控制台打印的日志比较多,速度比较慢,可以取消spring日志打印,resources目录下添加logback.xml,名称固定,格式固定,添加以下内容即可:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
</configuration>
打印日志过多的操作可以不用做,一般方便我们查看程序的运行结果。

取消SpringBoot和MyBatisPlus的log打印
除了日志的打印还有log的打印很占位置,取消MybatisPlus启动的banner图标:

 application.yml添加如下内容:

# mybatis-plus日志控制台输出 
mybatis-plus: 
    configuration: 
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 
    global-config: 
        banner: off # 关闭mybatisplus启动图标
取消SpringBoot的log图标打印

 application.yml添加如下内容:

spring: 
    main: 
        banner-mode: off # 关闭SpringBoot启动图标(banner)
二、多条件构建查询
格式一:常规格式
QueryWrapper<User> qw = new QueryWrapper<User>();
//查询年龄大于等于18岁,小于65岁的用户
qw.lt("age",65); 
qw.ge("age",18); 
List<User> userList = userDao.selectList(qw); 
System.out.println(userList);
lt相当于(<)

 SELECT id,name,password,age,tel FROM user WHERE (age < ?)
ge相当于(>)

SELECT id,name,password,age,tel FROM user WHERE (age > ?)
格式二:链式编程格式
QueryWrapper<User> qw = new QueryWrapper<User>();
//查询年龄大于等于18岁,小于65岁的用户
qw.lt("age",65).qw.ge("age",18); 
List<User> userList = userDao.selectList(qw); 
System.out.println(userList);
格式三:lambda格式(推荐)
QueryWrapper<User> qw = new QueryWrapper<User>();
//查询年龄大于等于18岁,小于65岁的用户
qw.lambda.lt(User::getAge,65).ge(User::getAge,18);
List<User> userList = userDao.selectList(qw); 
System.out.println(userList);
User::getAge,为lambda表达式中的,类名::方法名,因为是链式编程,将大于小于都连接了,最终的sql语句为:

 SELECT id,name,password,age,tel FROM user WHERE (age < ? AND age > ?)
格式四:lambda格式(推荐)
LambdaQueryWrapper<User> qw = new LambdaQueryWrapper<User>();
//查询年龄大于等于18岁,小于65岁的用户
qw.lt(User::getAge,65).ge(User::getAge,18);
List<User> userList = userDao.selectList(qw); 
System.out.println(userList);
并且(and)
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//查询年龄大于等于18岁,小于65岁的用户
lqw.lt(User::getAge,65).ge(User::getAge,18);
List<User> userList = userDao.selectList(lqw); 
System.out.println(userList);
什么都不写,就默认是并且(and)的关系

或者(or)
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//查询年龄大于等于18岁,小于65岁的用户
lqw.lt(User::getAge,65).or().ge(User::getAge,18);
List<User> userList = userDao.selectList(lqw); 
System.out.println(userList);
or()就相当于我们sql语句中的or关键字,最终的sql语句为

 SELECT id,name,password,age,tel FROM user WHERE (age < ? OR age > ?)
————————————————
版权声明:本文为CSDN博主「夏志121」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_61961937/article/details/125924617

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值