Wrapper

    我们写一些复杂的sql就可以使用它来代替
    image.png

    测试一:

    1. @Test
    2. void contextLoads() {
    3. // 查询name不为空,并且邮箱不为空的用户,年龄大于12岁
    4. QueryWrapper<User> wrapper = new QueryWrapper<>();
    5. wrapper.isNotNull("name")
    6. .isNotNull("email")
    7. .ge("age","3");
    8. userMapper.selectList(wrapper).forEach(System.out::println);
    9. }

    测试二:

    1. @Test
    2. public void test2(){
    3. // 查询名字 Cedric
    4. QueryWrapper<User> wrapper = new QueryWrapper<>();
    5. wrapper.eq("name","Cedric");
    6. User user = userMapper.selectOne(wrapper); // 查询一个数据,出现多个结果使用List或者Map
    7. System.out.println(user);
    8. }

    测试三:

    1. @Test
    2. public void test3(){
    3. // 查询年龄在 20 ~ 30 岁之间的用户
    4. QueryWrapper<User> wrapper = new QueryWrapper<>();
    5. wrapper.between("age",20,30); // 区间
    6. Integer count = userMapper.selectCount(wrapper);
    7. System.out.println(count);
    8. }

    测试四:

    1. // 模糊查询
    2. @Test
    3. public void test4(){
    4. QueryWrapper<User> wrapper = new QueryWrapper<>();
    5. wrapper.notLike("name","S")
    6. .likeRight("email","c");
    7. List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
    8. maps.forEach(System.out::println);
    9. }

    测试五:

    1. @Test
    2. public void test5(){
    3. QueryWrapper<User> wrapper = new QueryWrapper<>();
    4. // id 在子查询中查出来
    5. wrapper.inSql("id","select id from user where id < 3");
    6. List<Object> objects = userMapper.selectObjs(wrapper);
    7. objects.forEach(System.out::println);
    8. }

    测试六:

    1. // 排序
    2. @Test
    3. public void test6(){
    4. QueryWrapper<User> wrapper = new QueryWrapper<>();
    5. // 通过id降序排序
    6. wrapper.orderByDesc("id");
    7. List<User> users = userMapper.selectList(wrapper);
    8. users.forEach(System.out::println);
    9. }