记录Dubbo整合springboot+mybatis时,使用PageHelper分页不起作用的问题
·
问题:PageHelper.startPage(pageNum, pageSize); 放到controller层时:分页不起作用
原因:controller调用dubbo服务,mybatis是在service层调用,PageHelper在controller层使用,获取的数据是从dubbo服务中调用的,没有直接调用mybatis,所以PageHelper没有生效(自己理解,有更好的欢迎留言)
controlle层代码:自己写的demo测试的
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(JobLog jobLog) {
Integer pageNum = 1;
Integer pageSize = 10;
PageInfo<JobLog> pageInfo = jobLogService.queryPage(pageNum, pageSize, jobLog);
return getDataTablePageInfo(pageInfo.getTotal(), pageInfo.getList());
}
protected TableDataInfo getDataTablePageInfo(long total, List<?> list) {
TableDataInfo rspData = new TableDataInfo();
rspData.setRows(list);
rspData.setTotal(total);
return rspData;
}
service层代码:
service接口:
/**
* 分页查询
*
* @param pageNum
* @param pageSize
* @return
*/
public PageInfo<JobLog> queryPage(int pageNum, int pageSize, JobLog jobLog);
serviceImpl实现:
/**
* 分页
*/
@Override
public PageInfo<JobLog> queryPage(int pageNum, int pageSize, JobLog jobLog) {
PageHelper.startPage(pageNum, pageSize);
List<JobLog> list = jobLogMapper.selectJobLogList(jobLog);
PageInfo<JobLog> pageInfo = new PageInfo<>(list);
return pageInfo;
}
用到的工具类:TableDataInfo
public class TableDataInfo implements Serializable {
private static final long serialVersionUID = -2952383578910613989L;
/** 总记录数 */
private long total;
/** 实体类集合 */
private List<?> rows;
/**
* 表格数据对象
*/
public TableDataInfo() {
}
/**
* 分页
*
* @param list 列表数据
* @param total 总记录数
*/
public TableDataInfo(List<?> list, int total) {
this.rows = list;
this.total = total;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)