日期:2014-05-18  浏览次数:20713 次

查询分页问题,初学者
在网上看了很多分页方法,目前只学会了将数据库所有的数据全查询出来分页显示:语句是String sql="Select COUNT(ID) AS Expr1 From tb_task where Wcbs='"+bs+"'";

但是现在我在做查询后显示,利用多条件组合查询,查询出来的结果分页显示俺就不会做了,看了很多没看懂。

现在很想学习下怎么做这种查询的分页,请问谁能给个适合初学者学习的分页方法,希望能有详细点的解释,因为刚入门,如果没解释或者太复杂了,实在是看不懂,所以想请教下有没有适合初学者用的方法,希望能有个例子,谢谢。

------解决方案--------------------
给个例子你看看:
<%@ 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>
trademark
</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.getTrademark()%>
</td>
<td>
<%=dlist.getHost()%>
</td>
<td>
<%=dlist.getPhone()%>
</td>
</tr>
<%
}

}
%>
</table>
<br>

<%=nextPageNo%>
页 共