当前位置:首页 » 编程语言 » javamysql分页

javamysql分页

发布时间: 2024-09-08 03:44:07

⑴ Mysql中查询语句实现分页功能

pageNow代表当前页面,第一页。

java分页

分页想清楚了就没什么难的了。一般有两种(我就知道两种):

1.数据库分页:
/**
* @param pageItems:一页显示条数 currentPage:当前第几页
* @autor godelegant
*/
public List findAll(int pageItems,int currentPage){
StringBuffer sqlStr = new StringBuffer("select * from Proct limit ?,?");
...
...
int startIndex = (currentPage-1)*pageItems;);//(currentPage-1)*pageItems能过当前页和页面记录数得到应该从哪条开始取
int endIndex = startIndex+pageItems;
db.getPstmt().setInt(1,startIndex);
db.getPstmt().setInt(2,endIndex);
ResultSet rs = db.getPstmt().executQuery();//假设你已经得到了数据库连接

//以上为MYSQL的JDBC分页,下面是ORALCE的,差别只在于SQL,所以你换一下SQL就OK:
StringBuffer sqlStr = new StringBuffer("select *,rownum rn from (select * from Proct) where rn <=? and rownum >=?");

}
求总页数的方法很简单,查出所有记录数,除一页显示数。就可以得到

以上是JDBC的,如果使用hibernate等,数据库分页将会变得很简单,只需要设置两个参数,就是从哪取和取多少。

2.代码分页
思路是将数据库中的所有记录都取出来,然后再分页。
/**
* @para items:数据库中的所有记录,你可以使用另一个方法得到,如何查询得到我就不用说了吧
* @autor godelegant
*/
public List findAll(List items,int pageItems,int currentPage){
int startIndex = (currentPage-1)*pageItems;//从哪里开始取
int offset = items.size()-startIndex;//还有多少没有取过

int pageCount = offset>pageItems?pageItems:offset;//如果没有取过的大于需要显示的数,则实现显示数pageCount=pageItems,反之然;

List<Proct> pageList = new ArrayList();
for(int i=startIndex,i<startIndex+pageCount,i++){
pageList.add(items.get(i));
}

return pageList;

}

写了40分钟,希望对你有用

热点内容
战地5默认是什么服务器 发布:2025-09-18 17:59:32 浏览:296
安卓变ios系统主题怎么弄 发布:2025-09-18 17:54:07 浏览:875
linux出口ip 发布:2025-09-18 17:51:57 浏览:936
androidbitmap使用 发布:2025-09-18 17:49:20 浏览:230
数字日期加密 发布:2025-09-18 17:43:46 浏览:495
网吧电脑显示未连接上桌面服务器 发布:2025-09-18 17:37:17 浏览:693
电脑压缩文件怎么解压 发布:2025-09-18 17:27:59 浏览:383
数据库数据类型表 发布:2025-09-18 17:11:56 浏览:27
java如何生产执行bat脚本 发布:2025-09-18 16:53:25 浏览:556
湖北的服务器地址是多少 发布:2025-09-18 16:51:09 浏览:488