mybatis-plus自定义sql分页查询

 1、TsparamServiceImpl   Service里面查询方法 

        调用baseMapper.selectMyPage2(page, qw); 

        qw是 QueryWrapper 查询条件

@Override
    public PageUtils queryPageByPID(Map<String, Object> params) {

        Integer pageIndex = Integer.parseInt((String) params.get("page")); //第几页
        Integer limit = Integer.parseInt((String) params.get("limit"));//每页数

        QueryWrapper<TsparamEntity> qw = new QueryWrapper<>();

        String paramtypeid = (String) params.get("paramtypeid");
        if(StringUtils.hasText(paramtypeid)){
            qw.eq("t1.paramtypeid",paramtypeid);
        }

        String key= (String) params.get("key");

        if(StringUtils.hasText(key)){
            qw.and(w->{
                w.eq("t1.pid",key).or().like("t1.pname",key);
            });
        } 

        Page<TsparamEntity> page = new Page<>(pageIndex,limit);
        IPage<TsparamEntity> mapIPage = this.baseMapper.selectMyPage2(page, qw);

        return new PageUtils(mapIPage);
    }

2、TsparamDao  添加接口方法  selectMyPage2

@Mapper
public interface TsparamDao extends BaseMapper<TsparamEntity> {

    /**
     * 自定义sql分页
     * @param page
     * @param queryWrapper 看这里看这里,如果自定义的方法中需要用到wrapper查询条件,需要这样写
     * @return
     */
    //IPage<TsparamEntity> selectMyPage(IPage<TsparamEntity> page, @Param(Constants.WRAPPER) Wrapper<TsparamEntity> queryWrapper);

    IPage<TsparamEntity> selectMyPage2(IPage<TsparamEntity> page,@Param(Constants.WRAPPER) Wrapper<TsparamEntity> queryWrapper);
}

3、mapper.xml  

    <select id="selectMyPage2" resultType="com.rdhl.modules.lis.entity.TsparamEntity">
         select t1.*,t2.valuename from tsparam t1
         left join tsparamvalue t2 on t1.pid=t2.pid and t1.pvalue=t2.valueid
         ${ew.customSqlSegment}
    </select>
${ew.customSqlSegment}  会自动根据qw 和param参数生成where 语句

在qw条件中,我们可以直接使用 表别名.字段名 进行where条件的拼装 如: qw.eq("t1.paramtypeid",paramtypeid); 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值