MyBatis Plus之QueryWrapper分页查询示例

本文详细介绍了如何使用MyBatis的QueryWrapper进行分页查询,包括条件筛选、时间范围限定及多字段模糊搜索,并展示了如何通过SQL语句实现分页查询,适用于后端开发人员快速掌握MyBatis分页技巧。

一、使用QueryWrapper分页查询
TTemplateData 为实体
condition为前端所传所有查询条件实体
keys 为前端搜索框条件

  QueryWrapper<TTemplateData> templateWrapper = new QueryWrapper<>();
        String keys = condition.getSearchCondition();
        templateWrapper.eq("status", 0);
        if(null != condition.getStartTime() && !condition.getStartTime().isEmpty()){
            templateWrapper.gt("create_time",condition.getStartTime());
        }
        if(null != condition.getEndTime() && !condition.getEndTime().isEmpty()){
            templateWrapper.lt("create_time",condition.getEndTime());
        }
        //keys一个搜索框为匹配多个字段
        if(null != keys){
            templateWrapper.and(wrapper -> wrapper.like("template_no",keys).or().like("template_name",keys)
                    .or().like("template_type_name",keys).or().like("create_name",keys));
        }
        templateWrapper.orderByDesc("create_time");
        Page<TTemplateData> page = new Page<>(condition.getPage(), condition.getPageSize());
        IPage<TTemplateData> templateIPage = tTemplateDataMapper.selectPage(page, templateWrapper);
        return Result.SUCCESS(templateIPage);
        

二、使用sql语句分页查询

     实现类
String keys = condition.getSearchCondition();
    Page<TLabel> page = new Page<>(condition.getPage(), condition.getPageSize());
    IPage<TLabel> labelIPage = tLabelMapper.selectPageList(page,keys,condition.getLabelTypeName());
    return Result.SUCCESS(labelIPage);
    mapper接口
        IPage<TLabel> selectPageList(@Param("page") Page<TLabel> page,@Param("labelName") String labelName,@Param("labelTypeName") String labelTypeName);
    xml实现
 <select id = "selectPageList"  resultMap="BaseResultMap">
    select l.*,t.label_type_name labelTypeName from t_label l left join t_label_type t on l.label_type_id = t.id and t.status = 0
    where  l.status = 0
        <if test="labelName != null and labelName != ''">
            and l.label_name like concat('%',#{labelName},'%')
        </if>
        <if test="labelTypeName != null and labelTypeName != ''">
            and t.label_type_name = #{labelTypeName}
        </if>
</select>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值