实现一个分页接口需要几步?

如何写出一个返回分页结果的接口?先看下图,一个支持分页的数据表格需要什么样的数据结构?
实现一个分页接口需要几步?
Step01:定义分页数据结构
PageInfo {
currentPage:当前页码
totalPage:总页数
totalCount:符合查询条件的记录总数
pageSize:页面大小(容量)
pageBegin:条件查询语句(SQL)左边参数(非必须,可计算得出)
pageEnd:条件查询语句(SQL)右边参数(非必须,可计算得出)
list:返回当前页的数据(记录)
}

假如原始的条件查询语句:
select a,b,c from tableName where condition

Step02:PageInfo的初始化
currentPage、pageSize:作为接口的入参,同时可以作为返回结果中的属性(已知或者是默认)
totalCount:条件查询语句(SQL)外层count,select count(*) from (select a,b,c from tableName where condition) tmp,返回结果
totalPage:totalPage = (totalCount / pageSize + ((totalCount % pageSize == 0) ? 0 : 1))

Step03:条件查询语句后,补充限制条件 limit
limit pageBegin,pageEnd
select a,b,c from tableName where condition limit pageBegin,pageEnd

Step04:查询结果数据set
list:条件查询返回数据列表填充

附上PageInfo的代码