1.MybatisPlus(二)MybatisPlus入门案例2.MybatisPlus(一)MybatisPlus简介3.MybatisPlus(三)MybatisPlus CRUD操作4.MybatisPlus(四)MybatisPlus分页5.MybatisPlus(五)MybatisPlus条件查询
6.MybatisPlus(六)MybatisPlus-空值处理
7.MybatisPlus(七)MybatisPlus-DQL编程控制(上)8.MybatisPlus(八)MybatisPlus-DQL编程控制(下)9.MybatisPlus(九)MybatisPlus-DML编程控制10.MybatisPlus(十)MybatisPlus-逻辑删除和多记录操作11.MybatisPlus(十一)MybatisPlus-乐观锁12.MybatisPlus(十二)Mybatis-Plus 代码生成器一、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值。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)