Mybatis Plus 使用学习五 mapper查询用法 下

这一节我们继续学习Mybatis Plus的查询使用方法。

6、根据条件查询列表,这个我们在第一节就演示过了,看下源码定义:

/**
     * 根据 entity 条件,查询全部记录
     *
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

第一节内容的代码:

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
        Assert.assertEquals(5, userList.size());
        userList.forEach(System.out::println);
    }

7、基于条件将查询结果以List<Map>返回

代码:

    @Test
    public void testSelectMaps() {
        System.out.println(("----- selectMaps method test ------"));
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.gt("Age", 21);

        List<Map<String, Object>> list = userMapper.selectMaps(wrapper);


        list.forEach(user -> user.forEach((k,v)->{
            // 打印键,打印值
            System.out.println(k + "----" +v);
        }));
    }

输出:

==>  Preparing: SELECT id,name,age,email FROM user WHERE (Age > ?) 
==> Parameters: 21(Integer)
<==    Columns: ID, NAME, AGE, EMAIL
<==        Row: 3, Tom, 28, test3@baomidou.com
<==        Row: 5, Billie, 24, test5@baomidou.com
<==      Total: 2

上面是SQL输出,下面是代码打印输出:

ID----3
EMAIL----test3@baomidou.com
NAME----Tom
AGE----28

ID----5
EMAIL----test5@baomidou.com
NAME----Billie
AGE----24

sql查询条件是年龄大于21的人,打印了两条数据,是key—-value的格式打印的。

8、基于条件查询,返回一个主键的list,也就是返回的是主键的集合

代码:

    @Test
    public void testSelectObjs() {
        System.out.println(("----- selectObjs method test ------"));
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.gt("Age", 21);
        List users = userMapper.selectObjs(wrapper);
        users.forEach(System.out::println);
    }

输出:

==>  Preparing: SELECT id,name,age,email FROM user WHERE (Age > ?) 
==> Parameters: 21(Integer)
<==    Columns: ID, NAME, AGE, EMAIL
<==        Row: 3, Tom, 28, test3@baomidou.com
<==        Row: 5, Billie, 24, test5@baomidou.com
<==      Total: 2

System.out::println的输出:

3
5

9、基于条件的分页查询,在第二节已经讲过,这里贴出源码的方法定义

    /**
     * 根据 entity 条件,查询全部记录(并翻页)
     *
     * @param page         分页查询条件(可以为 RowBounds.DEFAULT)
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    <E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

第二节内容的代码:

    @Test
    public void testSelectPage() {
        System.out.println(("----- selectAll method test ------"));
        Page<User> userPage = userMapper.selectPage(new Page<User>(1, 2), null);
        List<User> records = userPage.getRecords();
        records.forEach(System.out::println);
    }

10、基于条件的分页查询,在第二节已经讲过,这里贴出源码的方法定义

    /**
     * 根据 Wrapper 条件,查询全部记录(并翻页)
     *
     * @param page         分页查询条件
     * @param queryWrapper 实体对象封装操作类
     */
    <E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);