显示问题:


如上图,调用方法时的分页数据query中没有参数。
解决方法:
一:
public class ×××ServiceImpl extends ServiceImpl<×××DAO, ×××DO> implements ×××Service
继承ServiceImpl<DAO,DO>方法
这里使用的是×××DAO.selectPage(page, queryWrapper);为mybatis的内置selectPage方法。
二:
PageManagerUtils.query(×××DAO, queryWrapper, param);
使用自己的工具类对数据进行处理
public class PageManagerUtils<T> {
/**
* 单表分页查询 -- 临时
*
* @param baseMapper baseMapper
* @param queryWrapper queryWrapper
* @param pageDTO pageDTO
* @return IPage
* @deprecated 建议使用静态方法 PageManagerUtils.query
*/
@Deprecated
public IPage<T> queryPage(BaseMapper<T> baseMapper, QueryWrapper<T> queryWrapper, SntPage pageDTO) {
return query(baseMapper, queryWrapper, pageDTO);
}
/**
* 单表分页查询 -- 临时
*
* @param baseMapper DAO
* @param wrapper wrapper
* @param pageDTO 分页信息
* @param <T> DO类型
* @return 分页数据
*/
public static <T> IPage<T> query(BaseMapper<T> baseMapper, Wrapper<T> wrapper, SntPage pageDTO) {
Page<T> page = new Page<>(pageDTO.getCurrentPage(), pageDTO.getPageSize());
Integer count = baseMapper.selectCount(wrapper).intValue();
page.setTotal(count);
int minCount = (pageDTO.getCurrentPage() - 1) * pageDTO.getPageSize();
if (count > minCount) {
String limitSql = "LIMIT " + minCount + "," + pageDTO.getPageSize();
if (wrapper instanceof QueryWrapper) {
((QueryWrapper<T>)wrapper).last(limitSql);
} else if (wrapper instanceof LambdaQueryWrapper) {
((LambdaQueryWrapper<T>)wrapper).last(limitSql);
} else {
throw new Exception("无法识别的 wrapper 类型");
}
page.setRecords(baseMapper.selectList(wrapper));
} else {
page.setRecords(new ArrayList<>());
}
return page;
}
}
// SntPage类
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
public class SntPage {
private static Integer MAX_PAGE_SIZE = 5000;
private static Integer DEFAULT_PAGE_SIZE = 1000;
private Integer pageSize;
private Integer currentPage;
private Integer totalRecored;
public SntPage() {
}
public Integer getPageSize() {
return this.pageSize != null && this.pageSize >= 1 ? this.pageSize : DEFAULT_PAGE_SIZE;
}
public void setPageSize(Integer pageSize) {
if (pageSize == null) {
this.pageSize = DEFAULT_PAGE_SIZE;
} else if (pageSize > MAX_PAGE_SIZE) {
this.pageSize = MAX_PAGE_SIZE;
} else {
this.pageSize = pageSize;
}
}
public Integer getCurrentPage() {
return this.currentPage != null && this.currentPage >= 1 ? this.currentPage : 1;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public Integer getPageTotal() {
if (this.totalRecored == null) {
return 0;
} else {
int tp = this.totalRecored / this.getPageSize();
if (this.totalRecored % this.getPageSize() > 0) {
++tp;
}
return tp;
}
}
public Integer getTotalRecored() {
return this.totalRecored;
}
public void setTotalRecored(Integer totalRecored) {
this.totalRecored = totalRecored;
}
public Integer getOffset() {
return (this.getCurrentPage() - 1) * this.getPageSize();
}
}
结果:



888

被折叠的 条评论
为什么被折叠?



