
<%@ page contentType="text/html; charset=gb2312" %>
<%@page contentType="text/html; charset=gb2312"%>
<%@page import="javasql" %>
<%@page import="javautil" %>
<%@page import="javaio" %>
<%@page language="java"%>
<html>
<head> <title>分页显示数据</title></head>
<body>
<div align="center"><strong>分页显示数据库记录</strong></div>
<br><hr>
<table width="800" border="1" align="center">
<tr>
<td>学号</td>
<td>姓名</td>
<td>电话</td>
</tr>
<%
try
{
String driverName="commysqljdbcDriver";
String user="root";
String password="software";
String dbName="student";
String tables="studentInfo";
String url="jdbc:mysql://localhost:3306/"+dbName;
ClassforName(driverName)newInstance();
Connection conn=DriverManagergetConnection(url,user,password);
String sql="select from "+tables;
Statement stmt=conncreateStatement();
ResultSet rs=stmtexecuteQuery(sql);
int intPageSize;//一页显示的记录数
int intRowCount;//记录的总数
int intPage;//待显示的页数
int intPageCount;//总页数
String strPage;
int i;
intPageSize=3;
strPage=requestgetParameter("page");//获得待显示的页码
if(strPage==null)
{
intPage=1;
}else
{
intPage=javalangIntegerparseInt(strPage);
}
if(intPage<1)
{
intPage=1;
}
rslast();//获得记录总数 什么意思????
intRowCount=rsgetRow();
intPageCount=(intRowCount+intPageSize-1)/intPageSize;//计算总页数
if(intPage>intPageCount)
intPage=intPageCount;
if(intPageCount>0)
{
rsabsolute((intPage-1)intPageSize+1);//将记录指针指到待显示页码的第一条记录
}
//下面用于显示数据
i=0;
while(i<intPageSize && !rsisAfterLast())
{
%>
<tr>
<td><%=rsgetString(1) %></td>
<td><%=rsgetString(2) %></td>
<td><%=rsgetString(3) %></td>
</tr>
<%
rsnext();
i++;
}
rsclose();
stmtclose();
connclose();
%>
<div align="center">
共<%=intRowCount%>个记录,分<%=intPageCount%>页显示,当前页是:第<%=intPage%>页"
<%
for(int j=1;j<=intPageCount;j++)
{
outprintln(" , <a href='FenMysqljsppage="+j+"'>"+j+"</a>");
}
%>
</div>
</table>
<%
}
catch(Exception e)
{
eprintStackTrace();
}
%>
</body>
</html>分页有三种
一 用sql语句分页 每次查询的结果都是一页 也就是只查出每页需要的行数
二 用java等后台语句分页 查询的额时候把所有的内容都查询出来 放在一个数组中 然后分页时只取数组中的记录数
三 以上两种方法结合
区别在于 方法一每翻一页都要查询一次数据库 方法二只查询一次 这样的话对访问量比较小的网站 可以采用 如果访问量比较大 这样会影响数据库的性能 方法二只查一次 只适合数据量较小的查询 如果数据量较大 会占用较大的客户端资源 第三种方法比较适中 一般大型网站采用 具体根据实际情况而定吧 本人比价喜欢第一种 源码太多 就不附带了 有问题可以Q我
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)