在之前我们的null值处理大部分都是采用if语句来进行判断:
package com.itheima;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.itheima.dao.UserDao;import com.itheima.domain.User;import com.itheima.domain.query.UserQuery;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import java.util.Map;@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll() {// 模拟页面传递过来的查询数据 UserQuery uq = new UserQuery();// 可能出现有任意一个数没有赋值 uq.setAge(10); uq.setAge2(null); // null判定 LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.lt(User::getAge, uq.getAge2()); // 正常我们采用if来进行判断是否有值,若有值则加入操作 // 但当if语句过多,导致代码冗杂 if( null != uq.getAge()) { lqw.gt(User::getAge, uq.getAge()); } List<User> userList = userDao.selectList(lqw); System.out.println(userList); }}MyBatisPlus给出了一种新的判定方法来决定是否加载该语句:
package com.itheima;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.itheima.dao.UserDao;import com.itheima.domain.User;import com.itheima.domain.query.UserQuery;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import java.util.Map;@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll() {// 模拟页面传递过来的查询数据 UserQuery uq = new UserQuery(); uq.setAge(10); uq.setAge2(30);// LambdaQueryWrapper的各种方法中均携带了一个判定条件在最前面的参数中,当成立执行后续操作,不成立直接跳过 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); }}
经验总结扩展阅读
- 测量戒指圈口的方法有哪些?
- 罗爱罗是哪部韩剧里的?
- 电视剧麦香大结局是什么?
- 美剧西部世界剧情介绍?
- 泥疗膏的功效和禁忌?
- 阿司倍鹭是日本品牌吗?
- 电视剧我的莫格利男孩剧情介绍?
- 电视剧招摇中姜武是什么人?
- 防晒霜50g能带上飞机吗?
- 泰国vc片一天吃多少片?
