在网上看了很多分页方法,目前只学会了将数据库所有的数据全查询出来分页显示:语句是String sql="Select COUNT(ID) AS Expr1 From tb_task where Wcbs='"+bs+"'";但是现在我在做查询后显示,利用多条件组合查询,查询出来的结果分页显示俺就不会做了,看了很多没看懂。现在很想学习下怎么做这种查询的分页,请问谁能给个适合初学者学习的分页方法,希望能有详细点的解释,因为刚入门,如果没解释或者太复杂了,实在是看不懂,所以想请教下有没有适合初学者用的方法,希望能有个例子,谢谢。
解决方案 »
- 用spring来管理Hibernate的时候,是如何开关数据库连接的
- 想要做个自己的网站有没有人能指个方向?
- ★[求助]关于WebWork的ww:doubleselect标签的困惑!!!★
- 数据库的问题
- 用什么方法可以判断字符串编码是UTF-8还是GB2312?
- 在一个机器上安装weblogic 并在他下发布两个软件 互相调用发生了session 问题 (请进)
- JDBC的驱动问题
- 请问写JSP用什么工具好点,有表示符提示的?
- 为什么无法用getString()方法取text类型字段的数据,高分求救,分不够再加!
- 问!如何处理jdbc中汉字的问题
- 怎么让文本框里面的内容隐藏
- 关于jsp重定向后引入js的问题(求救,在线等!)
<%@ page language="java"
import="java.util.*,app.information.model.DriverList"
pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="cc"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%
int pageSize=0; //一个页面显示的记录数目
int totalRowCount=0; //总的记录的数目
int pageCount=0; //总的页数
int nextPageNo=0; //待显示页面的页号
pageSize = 3; //设置一个页面所要显示的记录的数目为10条
int hasRead = 0; //用于统计从数据库中读取记录的数目(不能超过一个页面所能显示的记录数pageSize)
String strPage = request.getParameter("page");
System.out.println(strPage);
System.out.println("asdfasdfddffliiiil");
if (strPage == null) { //如果page传递的页码参数为空
nextPageNo = 1; //设置当前页面为第1页
} else {
nextPageNo = Integer.parseInt(strPage);
if (nextPageNo < 1) { //如果page传递的参数为负数
nextPageNo = 1; //则显示第1页
}
}
%>
<html>
<head> <title>My JSP 'driverDisplayList.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<table>
<tr>
<th>
emp_id
</th>
<th>
trade
</th>
<th>
host
</th>
<th>
phone
</th>
</tr>
<%
List list = (List) request.getAttribute("app.info.display.drivrList");//这为你传进来的数据集
System.out.println(list);
if (list.isEmpty()) {
out.println("<tr colspan=3>没有记录存在</tr>");
}
else
{
totalRowCount = list.size(); //获取当前行的行号,即为总的记录数目
pageCount = (totalRowCount + pageSize - 1) / pageSize; //获取分页数目
if (nextPageNo > pageCount) {
nextPageNo = pageSize; //当前页号大于分页的数目,则当前页号就为分页的数目
}
int readFlag = (nextPageNo - 1) * pageSize;
hasRead = readFlag;
for (; hasRead < list.size() && hasRead < (readFlag + pageSize); hasRead++) { DriverList dlist = (DriverList) list.get(hasRead);
%>
<tr>
<td>
<%=dlist.getId()%>
</td>
<td>
<%=dlist.getTrade()%>
</td>
<td>
<%=dlist.getHost()%>
</td>
<td>
<%=dlist.getPhone()%>
</td>
</tr>
<%
} }
%>
</table>
<br>
第
<%=nextPageNo%>
页 共
<%=pageCount%>
页
<%
if (nextPageNo < pageCount) {
%>
<!--待显示的页号小于总的分页数时,显示“下一页"超链接;第一页只显示"下一页"超链接-->
<a href="displayDriverList.jsp?page=<%=nextPageNo + 1%>">下一页</a>
<%
}
%> <%
if (nextPageNo > 1) {
%>
<!--待显示的页号大于1时,显示“上一页"超链接;最后一页只显示"上一页"超链接-->
<a href="displayDriverList.jsp?page=<%=nextPageNo - 1%>">上一页</a>
<%
}
%> </body>
</html>
我用的hibernate分页,到最后打出来的Sql是?<rownum<?