马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1、版本
Mybatis PLUS版本:3.5.7
留意:版本3.1.2及以下是须要return的
2、代码
- QueryWrapper<Object> queryWrapper = new QueryWrapper<>();
- List<String> values = Arrays.asList("1","2");
- queryWrapper.and(values != null && values.size() > 0, qw -> {
- values.forEach(var -> {
- if(var != null && !"".equals(var)){
- qw.or(sub -> sub.like("id", var));
- }
- });
- //return qw;
- });
复制代码 如须要封装,代码如下:
- package com;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
- import java.util.List;
- public class MyLambdaQueryWrapper<T> extends LambdaQueryWrapper<T> {
- public MyLambdaQueryWrapper<T> andOrLikePresent(SFunction<T, ?> column, List<?> values) {
- if(null == values){
- return this;
- }
- super.and(values != null && values.size() > 0, qw -> {
- values.forEach(var -> {
- if(var != null && !"".equals(var)){
- qw.or(sub -> sub.like(column, var));
- }
- });
- //return qw;
- });
- return this;
- }
- }
复制代码 利用如下:
- MyLambdaQueryWrapper<Object> wrapper = new MyLambdaQueryWrapper<>();
- wrapper.andOrLikePresent(Object::getID, Arrays.asList("1","2"));
复制代码
- <!-- mybatisPlus -->
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
- <version>3.5.7</version>
- </dependency>
- <!-- 代码生成器 -->
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-generator</artifactId>
- <version>3.5.7</version>
- </dependency>
- <!-- MyBatis 联表查询 -->
- <dependency>
- <groupId>com.github.yulichang</groupId>
- <artifactId>mybatis-plus-join-boot-starter</artifactId>
- <version>1.4.10</version>
- </dependency>
复制代码 3、效果
- SELECT
- id
- account,
- name,
- status
- FROM
- t_user
- WHERE
- status = '1'
- and ((( name like '%张三%')
- or ( name like '%李四%')
- or ( name like '%王五%')));
-
复制代码 多个List暗昧查询
- SELECT
- id
- account,
- name,
- status
- FROM
- t_user
- WHERE
- status = '1'
- and ((( account like '%zhang%')
- or ( account like '%li%')
- or ( account like '%wang%'))
- and (( name like '%张三%')
- or ( name like '%李四%')
- or ( name like '%王五%')));
复制代码 OK,就这些吧。
有什么不对的还望指正,誊写不易,以为有资助就点个赞吧!☺☺☺
参考链接:
|