一、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值。