问题: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;
	}

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐