MyBatisPlus查询

一,基本查询

  //测试查询By Id
    @Test
    public void testselectById(){
        TUser tUser = tUserMapper.selectById(1L);
        System.out.println(tUser);
    }

// 测试批量查询!By ids @Test public void testselectByBatchid(){ List<TUser> users = tUserMapper.selectBatchIds (Arrays. asList(1, 2, 3)); users. forEach (System.out::println); }


//按条件查询之一使用map操作 @Test public void testselectByBatchIds() { HashMap<String, Object> map = new HashMap<String, Object>(); //自定义要查询 map.put("username", "zl222"); List<TUser> tUsers = tUserMapper.selectByMap (map); tUsers.forEach (System.out::println); }


   构造器查询

 构造器图文介绍

  • Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
  • AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
  • AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
  • LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
  • LambdaUpdateWrapper : Lambda 更新封装Wrapper
  • QueryWrapper : Entity 对象封装操作类,不是用lambda语法
  • UpdateWrapper : Update 条件封装,用于Entity对象更新操作

 

使用方法

 小小一例:

     QueryWrapper<TmStockroom> wrapper = new QueryWrapper<>();
        wrapper.eq("code",req.getCode())
                .or()
                .eq("name",req.getName());
        List<TmStockroom> tmStockrooms = stockroomCommandMapper.selectList(wrapper);
        //tmStockrooms.forEach(System.out::println);
        if(tmStockrooms.size()!=0){
            throw new BusinessException("仓库code或者仓库名称已存在");
        }

控制台sql:

二,分页查询

1,引入MyBatisPlus插件

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

2,分页查询

  @Test
    public void testPage(){
        //第一个参数:当前页数
        //第二个参数:显示数据条数
        Page<TUser> tUserPage = new Page<>(1,5);
        IPage<TUser> tUserIPage = tUserMapper.selectPage(tUserPage, null);
        tUserIPage.getRecords().forEach(System.out::println);
    }
原文地址:https://www.cnblogs.com/zhulei2/p/13260600.html