public class PageInfo implements Serializable {
private static final long serialVersionUID = 1365747893051987016L
private int pageSize = 10// 每页显示10行,可自行调节
private int recordCount// 总行数
private int pageCount// 总页数
private int pageId// 当前页
private int startIndex// 当前页的开始行数
private int endIndex// 当前页的结束行数
private List items//当前页数据
public PageInfo() {
}
public int getPageSize() {
return pageSize
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize
}
public int getRecordCount() {
return recordCount
}
public void setRecordCount(int recordCount) {
this.recordCount = recordCount
}
public int getPageCount() {
return pageCount
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount
}
public int getPageId() {
return pageId
}
public void setPageId(int pageId) {
this.pageId = pageId
}
public int getStartIndex() {
return startIndex
}
public void setStartIndex(int startIndex) {
this.startIndex = startIndex
}
public int getEndIndex() {
return endIndex
}
public void setEndIndex(int endIndex) {
this.endIndex = endIndex
}
public List getItems() {
return items
}
public void setItems(List items) {
this.items = items
}
}
翻页直接对pageId(当前页)进行加减就可以了,有当前页开始行数,你直接
limit(startIndex-1)*pageSize,pageSize)就可以了
以前在数据中写翻页的代码时,一直把sql写成这样SELECT * FROM table_name ORDER BY id ASC LIMIT 10 OFFSET 10
也就是用LIMIT和OFFSET来控制需要输出的内容区域,后来我在翻其他人代码时看到了这种写法
SELECT * FROM table_name WHERE id >10 ORDER BY id ASC LIMIT 10
这种写法是否比前一种写法的速度要更快,因我看到它使用id主键的索引,而且还把检索区域用id >10缩小了,理论上应该更快。但这种写法应该也有一定的局限性,比如最大的局限就是它只能用于那种类似timeline的,从第一页往后翻的应用场景,因为你要翻下一页必须知道前一页的最后偏移是多少。
不知道我这样的分析是否正确,各位有什么样的看法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)