一、MybatisPlus-空值处理
1.1)问题引入:
在查询中遇到如下情况,有部分筛选条件没有值,如商品价格有最大值和最小值,商品价格部分时候没有值。

 

 

1.2)解决办法:

步骤一:新建查询实体类UserQuery继承自User

package com.it.domain.query;
 
import com.it.domain.User;
import lombok.Data;
 
@Data
public class UserQuery extends User {
    private Integer age2;
}

 


步骤二:

方式一)条件参数控制,代码如下:

        
        //模拟页面传递过来的查询数据
        UserQuery uq = new UserQuery();
        uq.setAge(10);
        uq.setAge2(30);
 
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        //先判定第一个参数是否为true,如果为true连接当前条件
        lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2());
        lqw.gt(null != uq.getAge(),User::getAge, uq.getAge());
 
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);

 



方式二)if语句控制条件追加,代码如下:

 
 
        //模拟页面传递过来的查询数据
        UserQuery uq = new UserQuery();
        uq.setAge(10);
        uq.setAge2(30);
 
        //null判定
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        lqw.lt(User::getAge, uq.getAge2());
        if( null != uq.getAge()) {
            lqw.gt(User::getAge, uq.getAge());
        }
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);
    

 



成功处理null值。

posted on 2024-11-24 14:21  努力--坚持  阅读(321)  评论(0)    收藏  举报