条件查询方式

  • MyBatisPlus 将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合
@SpringBootTest
class MybatisplusApplicationTests {

    @Autowired
    private UserDao userDao;

    @Test
    void testGetAll() {
        // 方式一:按条件查询
        QueryWrapper qw = new QueryWrapper();
        qw.lt("age", 18);
        List<User> userList = userDao.selectList(qw);
        System.out.println(userList);

        // 方式二:lambda格式按条件查询
        QueryWrapper<User> qw = new QueryWrapper<User>();
        qw.lambda().lt(User::getAge, 18);
        List<User> userList = userDao.selectList(qw);
        System.out.println(userList);

        // 方式三:lambda格式按条件查询
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<user>();
        lqw.lt(User::getAge, 10);
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);

        // 方式三:lambda格式按条件查询
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<user>();
        //lqw.lt(User::getAge, 30)
        //lqw.gt(User::getAge, 10);
        lqw.lt(User::getAge, 30).gt(User::getAge, 10);
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);

        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<user>();
        // 10到30岁之间
        lqw.lt(User::getAge, 30).gt(User::getAge, 10);
        // 小于10岁或者大于30岁
        lqw.lt(User::getAge, 10).or().gt(User::getAge, 30);
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);
    }
}


null值处理

@Data
public class User {
    private Long id;
    private String name;
    private String password;
    private Integer age;
    private String tel;
}
package com.xxx.domain.query;

@Data
public class UserQuery extends User {
    private Integer age2; // 对可能会有上下限的属性做此操作
}
@SpringBootTest
class MybatisplusApplicationTests {
    @Autowired
    private UserDao userDao;

    @Test
    void testGetAll() {
        // 模拟页面传递过来的查询数据
        UserQuery uq = new UserQuery();
        uq.setAge(10);
        uq.setAge2(30);

        // null判定
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<user>();
        lqw.lt(null != userQuery.getAge2(), User::getAge, uq.getAge2());
        lqw.gt(null != userQuery.getAge(), User::getAge, uq.getAge());
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);

    }
}