最后我们还要介绍两种组合查询条件形式:
- 并且(and)
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() { //并且关系 LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); //并且关系:10到30岁之间(直接链式书写即可) lqw.lt(User::getAge, 30).gt(User::getAge, 10); List<User> userList = userDao.selectList(lqw); System.out.println(userList); }}
- 或者(or)
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() { //或者关系 LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); //或者关系:小于10岁或者大于30岁(在条件之间采用or方法来隔离) lqw.lt(User::getAge, 10).or().gt(User::getAge, 30); List<User> userList = userDao.selectList(lqw); System.out.println(userList); }}空值处理我们在做实际项目处理时,会出现各种查询框架
例如价格查询搜索产品,但我们可能不会同时给出最低价限制和最高价限制
我们以代码来做一个简单示例:
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()); lqw.gt(User::getAge, uq.getAge()); List<User> userList = userDao.selectList(lqw); System.out.println(userList) }}
经验总结扩展阅读
-
-
-
男友|“打十次电话,九次不接”,不爱你的男人,你再爱也不要急着倒贴
-
-
-
-
-
白雪公主诗踏绮:这些护肤误区听说99%的人都躺枪了!
-
王真兮情感 王真兮荣获洛阳晚报“十大爱心人物”称号
-
-
-
-
有些地方要求上门女婿改姓,是去当儿还是丈夫,二者有何区别?
-
-
-
咖啡 王晓晨甩掉“多肉腰”,从110到88斤,坦言只要5个方法
-
-
-
-