mybatis plus QueryWrapper 条件构造器, 使用上的便利

接触到mybatis plus后,会为我们的开发工作省去不少功夫,使得开发效率大大提高;

    一、增删改,常规的增删改不用手动挨个去写了。

    二、分页,集成了分页插件,不需要我们手动去实现分页接口。

    三、代码生成工具,可以实现数据库到实体类、接口、实现、web的转化,分分钟搞定。


             我们以往常通过mybatis操作数据库,基本就是xml来编写sql语句,再简单一点就是注解sql;

    mybatis plus使用后,增删改查最常规的操作几乎已经自动生成了,剩下要手动去编写的也就是查询了,根据各种条件去筛选查询;

    我们常用的解决方案就是在xml编写大量的sql脚本,大量的if判断;这样就会带来很多工作,xml字段的核对,接口、实现等等;

    今天简单给大家了解一下QueryWrapper 条件构造器,非常简单实用;

    List<PlanContent> tmpList = planContentMapper.selectList(new QueryWrapper<PlanContent>()
            .eq("org_id", planOrgDto.getOrgId())
            .eq("business_type_id", planOrgDto.getBusinessTypeId())
            .eq("business_type_param_id", planOrgDto.getBusinessTypeParamId())
            .eq("business_role_id", dto.getBusinessRoleId())
    );

分页的实现方式:
    IPage<PlanContent> tmpList = planContentMapper.selectPage(new Page<>(planContent.getPageNo(), planContent.getPageSize()),
            new QueryWrapper<PlanContent>()
                    .eq(planContent.getOrgId() != null, "org_id", planContent.getOrgId())
                    .eq("state", 1)
                    .in(appIds.size() > 0, "business_type_id", planContent.businessTypeId)
                    .orderByDesc("create_at")
    );

.in(query.business_type_id > 0, "business_type_id", query.businessTypeId)
    这一句简单说一下,根据查询条件大于0的情况下,才会加入这一条的筛选条件;
<if test="query.business_type_id > 0 and query.business_type_id != null">
    and business_type_id = #{query.businessTypeId}
</if>
    
    上面两段语句结果是一样的,只是实现方式不同而已.今天就到这吧...

猜你喜欢

转载自blog.csdn.net/lizhao1226/article/details/108056103