求一份JavaBean中实现MySql分页的代码,可以传递参数的,方便调用,不要写在JSP页面里面的

求一份JavaBean中实现MySql分页的代码,可以传递参数的,方便调用,不要写在JSP页面里面的,第1张

mysql有limit好像比较给力,分页也不是很难。

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的,从第一页往后翻的应用场景,因为你要翻下一页必须知道前一页的最后偏移是多少。

不知道我这样的分析是否正确,各位有什么样的看法。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/7292476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存