IPage分页

IPage和Page都是new Page
网上查资料都说IPage封装了Page,所以以下都基于这个理解

  • IPage + SQL
	/*serviceImpl*/
	@Service
	public class ServiceImpl implements Service {
    	@Autowired
   		private Mapper mapper;
		 @Override
  	   	public IPage queryNewsList(Integer page, Integer pageSize, String query) {
        	//mySelectPage为自己写的SQL语句
        	//Page page1 = new Page<>(page,pageSize);
        	//IPage iPage = mapper.mySelectPage(page1,query) 
        	IPage iPage = mapper.mySelectPage(new Page<>(page, pageSize), query);
        	return iPage;
    	}
	}
  • IPage + QueryWrapper
	/*serviceImpl*/
	@Service
	public class ServiceImpl implements Service {
    	@Autowired
   		private Mapper mapper;
		 @Override
  	   	public IPage queryNewsList(Integer page, Integer pageSize) {
        	QueryWrapper  queryWrapper = new QueryWrapper<>();
        	queryWrapper.orderByDesc("orderBy");
        //MP自带的selectPage方法
        //Page page1 = new Page<>(page,pageSize);
        //IPage iPage = mapper.selectPage(page1 , queryWrapper);
        	IPage iPage = mapper.selectPage(new Page<>(page, pageSize), 
        		queryWrapper);
        	return iPage;
    	}
	}
  • mybatisPlus的mapper.selectPage或者其他的MP方法,应该都可以自己重写,以下是selectPage源码和我自己修改的selectPage
/**源码:
     * 获取自定义SQL 简化自定义XML复杂情况
     * <p>使用方法</p>
     * <p>`自定义sql` + ${ew.customSqlSegment}</p>
     * <p>1.逻辑删除需要自己拼接条件 (之前自定义也同样)</p>
     * <p>2.不支持wrapper中附带实体的情况 (wrapper自带实体会更麻烦)</p>
     * <p>3.用法 ${ew.customSqlSegment} (不需要where标签包裹,切记!)</p>
     * <p>4.ew是wrapper定义别名,可自行替换</p>
     */
    public String getCustomSqlSegment() {
        MergeSegments expression = getExpression();
        if (Objects.nonNull(expression)) {
            NormalSegmentList normal = expression.getNormal();
            String sqlSegment = getSqlSegment();
            if (StringUtils.isNotEmpty(sqlSegment)) {
                if (normal.isEmpty()) {
                    return sqlSegment;
                } else {
                    return Constants.WHERE + " " + sqlSegment;
                }
            }
        }
        return StringUtils.EMPTY;
    }

/**我自己修改的selectPage如下:直接在对应的XML文件中,写同名sql"selectPage",这样这个Mapper下的selectPage就会被修改,
	${ew.customSqlSegment}为service层控制的queryWapper条件构造器
	这个就很牛逼了,直接连表查,属于脱裤子放屁*/
	<select id="selectPage" resultType="qwq">
        select *
        from(
            select QAQ.*,QwQ.*
            from QAQ
            inner join QwQ
            on QAQ.subject_id = QwQ.subject_id
            ) as a
        ${ew.customSqlSegment}
    </select>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值