网页开发入门之解决数据分页问题

来源:互联网 发布:数据库基本编程foxpro 编辑:程序博客网 时间:2024/06/07 19:41

在网页开发的过程中我们经常会看到一些有与数据较多时需要分页的情况,(数据太多时如果不设置分页,不但会拖慢客户端的速度,严重时还会报错)因此笔者在次详细地总结一下达到网页开发中的分页效果的代码:

工具:Eclipse

代码如下:


    <% 

//首先加载数据库驱动,这里选择的是mysql数据库
Connection conn= null;
Statement sql =null;
Class.forName("com.mysql.jdbc.Driver");
conn  = DriverManager.getConnection("jdbc:mysql://127.0.0.1/haha","root","root");
sql=conn.createStatement();
int pagesize= 2;//设置每页需要显示的行数
int curpage=0;
String strpage= request.getParameter("strpage");
if(strpage==null)
curpage=1;
else  {curpage = Integer.parseInt(strpage);
if(curpage==0)
curpage=1;
}
ResultSet set =sql.executeQuery("select id,name from pagetable");
set.last();//光标指向最后一行
int rowNum = set.getRow(); //获取当前行数,两行加起来相当于获取表中的总行数
int pageNum = (rowNum+pagesize-1)/pagesize;//计算一共需要多少页来显示,需要向上取整
/*
两个数a,b除法的向上取整:
c=(a+b-1)/b
*/

%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>分页显示</title>
</head>
<body>
<table border ="1" cellspacing="0" cellpadding=“0”  width="30%">
<!-- cellspacing :设置表格内各单元格之间的距离 -->
<!-- cellpadding: 设置表格内个单元格内文字与边框之间的距离 ,对上下左右四条边框都有效 -->
<caption>数据库数据</caption>
<tr>
<th>编号</th>
<th>姓名</th>
</tr>
<tr>
<%
int line =(curpage-1)*pagesize+1;
set.absolute(line);//将光标定位到当前页的第一行
int i=0;
while(i<pagesize&&(set.isAfterLast()!=true)){
//光标不指向表中最后一行之后,i<2
int id = set.getInt(1);
String name = set.getString(2);
System.out.println(id+" "+ name);
%>
<tr>
<td><%=id %></td>
<td><%=name %></td>
</tr>
<!-- 将jsp代码嵌套在java代码中 -->
<%   
set.next();
i++ ;}    %>
</table>

第<%=curpage %>页  共<%=pageNum %>页
<%if(curpage<pageNum){%><a href="NewFile.jsp?strpage=<%=curpage+1%>"> 下一页</a><% }%>
<%if(curpage!=1){ %><a href="NewFile.jsp?strpage=<%=curpage-1%>">上一页</a><%}%>
</body>
</html>


tip:javaEE在添加jdbc驱动的过程于java稍有不同,具体的方法是:

其实解决方案很简单,就是直接找到WebContent/WEB-INF/lib目录,将驱动包引入该目录下,具体操作是:

右键lib---->import----->General----->File System----->From Directory,找到JDBC驱动的目录----->确定,然后选中驱动jar------->Finish


0 0