网页开发入门之解决数据分页问题
2017-04-23 11:54
274 查看
在网页开发的过程中我们经常会看到一些有与数据较多时需要分页的情况,(数据太多时如果不设置分页,不但会拖慢客户端的速度,严重时还会报错)因此笔者在次详细地总结一下达到网页开发中的分页效果的代码:
工具: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><% }%&
4000
gt;
<%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。
工具: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><% }%&
4000
gt;
<%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。
相关文章推荐
- 解决使用HIBERNATE对ORACLE数据库中数据进行排序分页错乱的问题
- WF 自定义活动开发常见问题(进入第二个流程状态,数据传递失败的解决方法)
- php 分页显示数据 post参数传递问题解决方法
- Web版PACS开发纪要二:解决文件传输数据“丢失”问题
- "数据源不支持服务器端的数据分页"的问题解决
- oracle分页查询数据重复问题的解决
- oracle分页查询数据重复问题的解决
- 解决网页开发过程中遇到的问题以及思路
- Android 下拉分页重复数据问题解决思路
- HttpWebResponse无法准确获取CharacterSet导致网页数据乱码问题的解决
- php 分页显示数据 post参数传递问题解决方法
- WindowsMobile(Winform)开发中的数据存储(解决在不同的Form中要调用对方的方法或者使用对方的数据问题)
- 解决Java Web开发中Jsp存储读取MySQL数据中文乱码的问题
- 用.net制作排序、分页解决数据大的问题
- PDF.NET数据开发框架实体类操作实例(for PostgreSQL,并且解决自增问题)
- oracle分页查询数据重复问题的解决
- 使用WebView加载数据出现找不到网页的问题之解决办法(转)
- Android Wear开发 - 数据通讯 - 第四节 : 数据封装(解决不能序列化问题)
- 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法
- 解决Mysql数据量大的时候 分页优化(使用limit)的问题