int pageCount;
int showPage;
%>
<!-- 连接数据库并从数据库中调取记录-->
<%
Connection con;
Statement sql;
ResultSet rs;
try{ClassforName("commysqljdbcDriver");
}catch(ClassNotFoundException e){
}
try{con=DriverManagergetConnection("jdbc:mysql://localhost:3306/message board","root","123456");
sql=concreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_READ_ONLY);
//返回可滚动的结果集
rs=sqlexecuteQuery("select from messageinfo");
//将游标移到最后一行
rslast();
//获取最后一行的行号
int recordCount=rsgetRow();
//计算分页后的总数
pageCount=(recordCount%pageSize==0)(lastRow/pageSize):(lastRow/pageSize+1);
//获取用户想要显示的页数:
String integer=requestgetParameter("showPage");
if(integer==null){
integer="1";
}
try{showPage=IntegerparseInt(integer);
}catch(NumberFormatException e){
showPage=1;
}
if(showPage<=1){
showPage=1;
}
if(showPage>=pageCount){
showPage=pageCount;
}
//如果要显示第showPage页,那么游标应该移动到的position的值是:
int position=(showPage-1)pageSize+1;
//设置游标的位置
rsabsolute(position);
//用for循环显示本页中应显示的的记录
for(int i=1;i<=pageSize;i++){
%>
<table>
<tr>
<th><%=rsgetString("UserName") %></th>
<td>发表于:<%=rsgetString("datetime") %></td>
</tr>
<tr >
<th colspan="3"><textarea><%=rsgetString("content") %></textarea></th>
</tr>
</table>
<%
rsnext();
}
rsclose();
conclose();
}
catch(Exception e){
eprintStackTrace();}
%>
<br>
第<%=showPage %>页(共<%=pageCount %>页)
<br>
<a href="ShowMessagesjspshowPage=1">首页</a>
<a href="ShowMessagesjspshowPage=<%=showPage-1%>">上一页</a>
<% //根据pageCount的值显示每一页的数字并附加上相应的超链接
for(int i=1;i<=pageCount;i++){
%>
<a href="ShowMessagesjspshowPage=<%=i%>"><%=i%></a>
<% }
%>
<a href="ShowMessagesjspshowPage=<%=showPage+1%>">下一页</a>
<a href="ShowMessagesjspshowPage=<%=pageCount%>">末页</a>
<!-- 通过表单提交用户想要显示的页数 -->
<form action="" method="get">
跳转到第<input type="text" name="showPage" size="4">页
<input type="submit" name="submit" value="跳转">
</form> 分页显示是web数据库应用中经常需要遇到的问题,当用户的数据库查询结果远远超过了计算机屏幕的显示能力的时候,我们该如何合理的将数据呈现给用户呢答案就是数据库分页显示,可以完美的解决上述问题下面是一个数据库分页 *** 作的通用实例,对任何数据库平台上的分页功能都有很好的借鉴意义 推荐阅读:项目要用到的主要源代码
//变量声明 扩展信息:J2ME学习笔记(三)
<%
javasqlconnection sqlcon; //数据库连接对象
javasqlstatement sqlstmt; //sql语句对象
javasqlresultset sqlrst; //结果集对象
javalangstring strcon; //数据库连接字符串
javalangstring strsql; //sql语句
int intpagesize; //一页显示的记录数
int introwcount; //记录总数
int intpagecount; //总页数
int intpage; //待显示页码
javalangstring strpage;
int i;
//设置一页显示的记录数
intpagesize = 2;
//取得待显示页码
strpage = requestgetparameter("page");
if(strpage==null){//表明在querystring中没有page这一个参数,此时显示第一页数据
intpage = 1;
}
else{//将字符串转换成整型
intpage = javalangintegerparseint(strpage);
if(intpage<1) intpage = 1;
}<%! int pageSize=4;
int pageCount;
int showPage;
%>
<!-- 连接数据库并从数据库中调取记录-->
<%
Connection con;
Statement sql;
ResultSet rs;
try{ClassforName("commysqljdbcDriver");
}catch(ClassNotFoundException e){
}
try{con=DriverManagergetConnection("jdbc:mysql://localhost:3306/message board","root","123456");
sql=concreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_READ_ONLY);
//返回可滚动的结果集
rs=sqlexecuteQuery("select from messageinfo");
//将游标移到最后一行
rslast();
//获取最后一行的行号
int recordCount=rsgetRow();
//计算分页后的总数
pageCount=(recordCount%pageSize==0)(lastRow/pageSize):(lastRow/pageSize+1);
//获取用户想要显示的页数:
String integer=requestgetParameter("showPage");
if(integer==null){
integer="1";
}
try{showPage=IntegerparseInt(integer);
}catch(NumberFormatException e){
showPage=1;
}
if(showPage<=1){
showPage=1;
}
if(showPage>=pageCount){
showPage=pageCount;
}
//如果要显示第showPage页,那么游标应该移动到的position的值是:
int position=(showPage-1)pageSize+1;
//设置游标的位置
rsabsolute(position);
//用for循环显示本页中应显示的的记录
for(int i=1;i<=pageSize;i++){
%>
<table>
<tr>
<th><%=rsgetString("UserName") %></th>
<td>发表于:<%=rsgetString("datetime") %></td>
</tr>
<tr >
<th colspan="3"><textarea><%=rsgetString("content") %></textarea></th>
</tr>
</table>
<%
rsnext();
}
rsclose();
conclose();
}
catch(Exception e){
eprintStackTrace();}
%>
<br>
第<%=showPage %>页(共<%=pageCount %>页)
<br>
<a href="ShowMessagesjspshowPage=1">首页</a>
<a href="ShowMessagesjspshowPage=<%=showPage-1%>">上一页</a>
<% //根据pageCount的值显示每一页的数字并附加上相应的超链接
for(int i=1;i<=pageCount;i++){
%>
<a href="ShowMessagesjspshowPage=<%=i%>"><%=i%></a>
<% }
%>
<a href="ShowMessagesjspshowPage=<%=showPage+1%>">下一页</a>
<a href="ShowMessagesjspshowPage=<%=pageCount%>">末页</a>
<!-- 通过表单提交用户想要显示的页数 -->
<form action="" method="get">
跳转到第<input type="text" name="showPage" size="4">页
<input type="submit" name="submit" value="跳转">
</form>分页有三种
一 用sql语句分页 每次查询的结果都是一页 也就是只查出每页需要的行数
二 用java等后台语句分页 查询的额时候把所有的内容都查询出来 放在一个数组中 然后分页时只取数组中的记录数
三 以上两种方法结合
区别在于 方法一每翻一页都要查询一次数据库 方法二只查询一次 这样的话对访问量比较小的网站 可以采用 如果访问量比较大 这样会影响数据库的性能 方法二只查一次 只适合数据量较小的查询 如果数据量较大 会占用较大的客户端资源 第三种方法比较适中 一般大型网站采用 具体根据实际情况而定吧 本人比价喜欢第一种 源码太多 就不附带了 有问题可以Q我
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)