posts - 206,  comments - 26,  views - 17万
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

一、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   努力--坚持  阅读(98)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示