IPage分页

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

  • IPage + SQL
	/*serviceImpl*/@Servicepublic class ServiceImpl implements Service {@Autowiredprivate Mapper mapper;@Overridepublic 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*/@Servicepublic class ServiceImpl implements Service {@Autowiredprivate Mapper mapper;@Overridepublic 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如下
/**源码:* 获取自定义SQL 简化自定义XML复杂情况* 

使用方法

*

`自定义sql` + ${ew.customSqlSegment}

*

1.逻辑删除需要自己拼接条件 (之前自定义也同样)

*

2.不支持wrapper中附带实体的情况 (wrapper自带实体会更麻烦)

*

3.用法 ${ew.customSqlSegment} (不需要where标签包裹,切记!)

*

4.ew是wrapper定义别名,可自行替换

*/
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,这样这个Mapper下的selectPage就会被修改*/<select id="selectPage" resultType="qwq">select *from(select QAQ.*,QwQ.*from QAQinner join QwQon q.subject_id = sub.subject_id) as a${ew.customSqlSegment}</select>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部