SpringBoot和Mybatis-plus实现的一些查询

SpringBoot和Mybatis-plus实现的一些查询(在测试类中实现)

1、多个id查询

@Test
    public void selectByIdMany(){
        List<User> users = userMapepr.selectBatchIds(Arrays.asList(1, "1342314475818954754", "1342339385874255874"));
        System.out.println(users);

    }

在asList方法参数中,输入想要查询的id

2、简单的条件查询(不常用)

 @Test
    public void selectByMap(){
        HashMap<String,Object> map = new HashMap<>();
        map.put("name","ccc");
        map.put("age",66);
        List<User> users = userMapepr.selectByMap(map);
    }

注意: name和age为同一条数据的属性时,才能够查询出来对应的数据,一个或者多个name为ccc,age为66的数据,如果name和age不是同一条数据的属性,则查询到的数据数为0。

@Test
    public void selectByMap(){
        HashMap<String,Object> map = new HashMap<>();
        map.put("name","ccc");
        map.put("name","hhh");
        List<User> users = userMapepr.selectByMap(map);
    }

注意: 当同时查询多个name时,因为map集合的自身特性,key不可以重复,value可以重复,key重复时,后插入的value覆盖之前的value值,所以该方法只查询name为hhh的数据。

3、分页查询

该方法是Mybatis-plus中自带的方法

1、配置一个分页的插件

创建一个config包,在config中创建一个PagePlugin类

 @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }

**注意:**在创建完类之后,在类的上边加上@Configuration注解,否则spring扫描不到分页插件,分页无法完成

2、编写部分代码

直接new一个page对象,传入两个参数,当前页和每页记录数,调用selectPage方法实现分页查询

@Test
    public void testPage(){
        //1.创建一个page对象
        //传入两个参数 当前页 每页记录数
        Page<User> page = new Page<>(1,3);
        //调用MP分页查询方法
        //调用mp分页查询过程中,底层封装
        //把分页所有数据封装到Page对象里面
        userMapepr.selectPage(page,null);

        //通过page对象获取分页数据
        System.out.println(page.getCurrent());//当前页
        System.out.println(page.getRecords());//每页的数据放在list集合中
        System.out.println(page.getSize());//每页显示条数
        System.out.println(page.getTotal());//总记录数
        System.out.println(page.getPages());//总页数
        System.out.println(page.hasNext());//下一页
        System.out.println(page.hasPrevious());//上一页
    }

4、复杂条件查询

使用QueryWrapper构造查询条件,创建querywrapper对象 调用方法实现各种条件查询

1、 ge(>=) gt(>) le(<=) lt(<)
 @Test
    public void selectComplex(){
        //创建queryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        //通过querywrapper设置查询条件
        //ge gt le lt
        //查询age>=30的记录
        //第一个参数是字段名称,第二个是查询的值大于等于30
        queryWrapper.ge("age",30);
        List<User> users = userMapepr.selectList(queryWrapper);
        System.out.println(users);
   }

此方法演示了查询年龄大于等于30的数据,其他条件同理

2、eq(=) ne(!=)
@Test
    public void queryComplex(){
        //创建queryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        //通过querywrapper设置查询条件
        //eq ne
        //查询name=abc的记录
        //第一个参数是字段名称,第二个是查询的name值
        queryWrapper.eq("name","abc");
        List<User> users = userMapepr.selectList(queryWrapper);
        System.out.println(users);
    }

此方法演示了查询name等于abc的数据,不等于同理

3、between
  @Test
    public void queryComplex(){
        //创建queryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        //通过querywrapper设置查询条件
        //between
        //查询年龄0-50的记录
        //第一个参数是字段名称,第二个是查询的开始值,第三个是结束值
        queryWrapper.between("age",0,50);
        List<User> users = userMapepr.selectList(queryWrapper);
        System.out.println(users);

此时查询到的数据是年龄0-50

4、like 模糊查询
@Test
    public void queryComplex(){
        //创建queryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        //通过querywrapper设置查询条件
        //like
        //查询姓名中带c的记录
        //第一个参数是字段名称,第二个是查询name中带c的值
        queryWrapper.like("name","c");
        List<User> users = userMapepr.selectList(queryWrapper);
        System.out.println(users);
    }

查询的是name中带c的数据

5、orderByDesc 降序 orderByAsc升序
 @Test
    public void queryComplex(){
        //创建queryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        //通过querywrapper设置查询条件
        //orderByDesc降序 orderByAsc升序
        //查询根据年龄降序排序
        queryWrapper.orderByDesc("age");
        List<User> users = userMapepr.selectList(queryWrapper);
        System.out.println(users);
   }

根据年龄进行降序排序查询

6、last
 @Test
    public void queryComplex(){
        //创建queryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        //通过querywrapper设置查询条件
        //last
        //在SQL语句中追加一个条件
        queryWrapper.last("limit 1");//只查询一条
        List<User> users = userMapepr.selectList(queryWrapper);
        System.out.println(users);
   }

在SQL语句后面追加一个limit 1 表示只查询1条

7、指定要查询的列
 @Test
    public void queryComplex(){
        //创建queryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        //通过querywrapper设置查询条件
        //指定要查询的列
        //指定查询id列和name列
        queryWrapper.select("id","name");
        List<User> users = userMapepr.selectList(queryWrapper);
        System.out.println(users);
    }

指定查询id列和name列的数据

你可能感兴趣的:(Mybatis-plus,spring,boot)