【Java】mybatisplus | where | and | or
java mybatisplus whereand or
·
一、说明
1、示例,依赖实体bean
package hg.demo.mybatis.plus.demo;
import lombok.Data;
@Data
public class Demo {
private String id;
private String name;
private Integer age;
}
2、依赖hutool工具
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.16</version>
</dependency>
3、依赖lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
4、依赖mybatisplus版本
3.4.1
二、常用where
1、and
1)and直接使用
QueryWrapper<Demo> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(Demo::getId, "1");
2)and非空时,使用
QueryWrapper<Demo> queryWrapper = new QueryWrapper<>(); String id = ""; queryWrapper.lambda().eq(StrUtil.isNotEmpty(id), Demo::getId, id);
2、or
1)直连or
期望效果:
select * from demo where id = 1 or name = 'a'
对应代码:
QueryWrapper<Demo> queryWrapper = new QueryWrapper<>(); String id = "1"; String name = "a"; queryWrapper.lambda() .eq(StrUtil.isNotEmpty(id), Demo::getId, id) .or() .eq(StrUtil.isNotEmpty(name), Demo:: getName, name) ;
2)and + or
期望效果:
select * from demo where id = 1 and (name = 'a' or age = 10)
对应代码:
QueryWrapper<Demo> queryWrapper = new QueryWrapper<>(); String id = "1"; String name = "a"; Integer age = 10; queryWrapper.lambda() .eq(StrUtil.isNotEmpty(id), Demo::getId, id) .and(StrUtil.isNotEmpty(name), q -> { q.eq(StrUtil.isNotEmpty(name), Demo:: getName, name) .or() .eq(null != age, Demo::getAge, age) ; });
说明: and()里面,需要加进入条件,不然如果内容为空,会有异常;
异常信息可参考:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)