mybatisplus的配置类

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor()
    {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

1.测试类-普通分页 没有查询条件

    @Test
    public void testSelectPage()
    {
        //封装Page对象作为分页查询参数对象
        Page<User> page = new Page<>(3, 5);// 当前页,每页显示条数
        //Page对象既可以作为分页查询参数的封装对象,也可以作为分页查询结果的保存对象
        // 调用selectPage方法,传入分页对象作为第一个参数,第二个参数是查询条件
        Page<User> pageResult = userMapper.selectPage(page, null);
        log.info(pageResult.getRecords());
    }

2.带有查询条件的分页查询QueryWrapper

QueryWrapper

wrapper(包装)查询条件对象

    @Test
    public void testSelectPageWithGtLt()
    {
        // 查询条件
        QueryWrapper<User> userqueryWrapper = new QueryWrapper<>();
        userqueryWrapper.gt("id",5).lt("id",10);
        
        List<User> userList=userMapper.selectList(userqueryWrapper);

        log.info(userList);
    }
    @Test
    public void testSelectPageWithLike()
    {
        // 查询条件
        QueryWrapper<User> userqueryWrapper = new QueryWrapper<>();
        userqueryWrapper.like("username","a")
                .orderByDesc("id");

        List<User> userList=userMapper.selectList(userqueryWrapper);

        log.info(userList);
    }

3.多条件分页查询

    @Test
    public void testSelectPage()
    {
        // 查询条件
        QueryWrapper<User> userqueryWrapper = new QueryWrapper<>();
        userqueryWrapper.like("username","a")
                .orderByDesc("id");


        // 分页查询
        Page<User> page = new Page<>(1, 4);

        // 执行查询
        Page<User> pageResult=userMapper.selectPage(page,userqueryWrapper);

        log.info(pageResult.getRecords());
    }

4.lambda格式查询条件分页查询

LambdaQueryWrapper

    @Test
    public void testSelectPageLambda()
    {
        // 查询条件
        LambdaQueryWrapper<User> userqueryWrapper = new LambdaQueryWrapper<>();
        userqueryWrapper.gt(User::getId,10)
                .like(User::getUsername,"a")
                .orderByDesc(User::getId);

        // 分页查询
        Page<User> page = new Page<>(1, 4);

        // 执行查询
        Page<User> pageResult=userMapper.selectPage(page,userqueryWrapper);

        log.info(pageResult.getRecords());
    }

5.wrapper动态条件拼接

    @Test
    public void testSelectPageLambdaCondition()
    {
        User user=new User();// 假设是前端传来的条件对象
        user.setId(20);
        user.setUsername("a");
        // 查询条件
        LambdaQueryWrapper<User> userqueryWrapper = new LambdaQueryWrapper<>();
        userqueryWrapper.gt(user.getId()!=null,User::getId,10)
                .like(user.getUsername()!=null && user.getUsername()!="",User::getUsername,"a")
                .orderByDesc(user.getId()!=null,User::getId);

        // 分页查询
        Page<User> page = new Page<>(1, 4);

        // 执行查询
        Page<User> pageResult=userMapper.selectPage(page,userqueryWrapper);

        log.info(pageResult.getRecords());
    }

判断条件也可以写成

Objects.nonNull(user.getId())

6.条件或者

两个条件之间添加.or()

7.查询投影 查询指定的字段

默认查询所有字段,需要查询指定的字段

lambda添加select

1、查询模型类存在的部分属性

    @Test
    public void testSelectPageWithSelect()
    {
        LambdaQueryWrapper<User> userqueryWrapper = new LambdaQueryWrapper<>();
        userqueryWrapper.select(User::getId,User::getUsername,User::getNickName);
        User user=new User();// 假设是前端传来的条件对象
        user.setId(20);
        user.setUsername("a");
        // 查询条件
        userqueryWrapper.gt(Objects.nonNull(user.getId()),User::getId,10)
                .or()
                .like(user.getUsername()!=null && user.getUsername()!="",User::getUsername,"a")
                .orderByDesc(user.getId()!=null,User::getId);

        // 分页查询
        Page<User> page = new Page<>(1, 4);

        // 执行查询
        Page<User> pageResult=userMapper.selectPage(page,userqueryWrapper);

        log.info(pageResult.getRecords());
    }
2、查询模型类中未定义的属性

通过selectMaps查询

//通过selectMaps查询
//mybatis-plus将查询到的每一条数据中的列名作为map的key,列的值作为map的value,
//每一条数据封装为一个map,将所有的map封装为一个list集合返回
List<Map<String,Object>> mapList=userMapper.selectMaps(userqueryWrapper);

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐