【MyBatis Plus 3.5.1】4、条件查询器 Wrapper【Spring Boot 环境】

【MyBatis Plus 3.5.1】4、条件查询器 Wrapper【Spring Boot 环境】,第1张

【MyBatis Plus 3.5.1】4、条件查询器 Wrapper【Spring Boot 环境】

结构图

由类结构图可见,Wrapper 内方法有限,大部分方法都封装在 AbstractWrapper 中,使用时可以用 *** 作类对象来调用方法;如:QueryWrapper 、UpdateWrapper

1、selectList

查询name不为空,email不为空,age大于18的用户

@Test
public void test1(){
    // 查询name不为空,email不为空,age大于18的用户
    QueryWrapper wrapper = new QueryWrapper();
    wrapper.isNotNull("name")
        .isNotNull("email")
        .ge("age", 18);

    List users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
}

2、selectOne

查询 name=Billie 的用户

如果查询结果有多个,会报错

    @Test
    public void test2(){
        // 查询 name=Billie 的用户
        QueryWrapper wrapper = new QueryWrapper<>();        
        wrapper.eq("name","Billie");
        
        User user = userMapper.selectOne(wrapper);
        System.out.println(user);
    }

3、selectCount

根据 Wrapper 条件,查询总记录数

@Test
public void test3(){
    QueryWrapper wrapper = new QueryWrapper<>();
    // 查询年龄在20到30之间;between 包含20和30
    wrapper.between("age", 20, 30);

    Long count = userMapper.selectCount(wrapper);
    System.out.println(count);
}

4、模糊查询

Compare 接口

like = LIKE '%值%'notLike = NOT LIKE '%值%'likeLeft = LIKE '%值'likeRight = LIKE '值%'

@Test
public void test4(){
    QueryWrapper wrapper = new QueryWrapper<>();
    // 名字中包含 a,不包含 e,向左侧匹配 y
    wrapper.like("name", "a")
        .notLike("name", "e")
        .likeLeft("name", "y");

    List> maps = userMapper.selectMaps(wrapper);
    maps.forEach(System.out::println);
}

5、子查询 inSql
@Test
public void test5(){
    QueryWrapper wrapper = new QueryWrapper<>();
    // id 存在于子查询中
    wrapper.inSql("id", 
                  "select id from user where id < 5");
    List objects = userMapper.selectObjs(wrapper);
    objects.forEach(System.out::println);
}
 

6、排序

@Test
public void test6(){
    QueryWrapper wrapper = new QueryWrapper<>();
    // id 小于8
    wrapper.lt("id",8);
    // 按名字升序排序
    wrapper.orderByAsc("name");

    List users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5721802.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)