JSP+MySql实现分页显示
3个回答
展开全部
源代码 ,这个测试过 好使 ,只要把登陆名与密码改一下,再建一个数据库 ,就好使了 别忘了 向里面添加数据
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/bbb";
String username = "root";
String password = "111111";
Class.forName(driverClass);
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
String sql = "select * from aa order by User DESC";
ResultSet rs = stmt.executeQuery(sql);
rs.last();
int pageSize = 5; //每页显示的记录数
int pageCount = 0; //总页数
int rowCount = rs.getRow(); //获取记录总数
//out.println(rowCount);
pageCount = (rowCount+pageSize-1)/pageSize;
int list_notice = 1; //当前页
//取得用户所指定的页
String goToPage = request.getParameter("list_notice");
if (goToPage == null){
goToPage = "1";
}
//转换成整形
try{
list_notice= Integer.parseInt(goToPage);
} catch (NumberFormatException ex){
list_notice = 1;
}
//当前页小于等于第一页 则按第一页算 如果 当前页大于等于总页数则为最后页
if(list_notice <=1){
list_notice = 1;
}
else if(list_notice >= pageCount){
list_notice = pageCount;
}
//游标的位置 (当前页 - 1) * 页面大小 + 1
int posion = (list_notice -1 ) * pageSize + 1;
//设置游标的位置
rs.absolute(posion);
//循环显示表中的数据 pageSize(每页所显示的记录)
//rs.isAfterLast() 游标是否在最后一行之后 说明后面已经没记录
int i=0;
%>
<table width="880">
<tr height = "8">
<td width="100" align="center" >公告标题</td>
<td width="680" align="center">公告内容</td>
<td width="100" align="center">公告日期</td>
</tr>
<%
while (i <pageSize && !rs.isAfterLast()){
%>
<tr>
<td width="100" align="center"><a href="front/notice/NoticeSingle.jsp?id=<%=rs.getString(1) %>"><b><%=rs.getString(2) %></b></a></td>
<td width="680" align="center"><%=rs.getString(3) %></td>
<td width="100" align="center"><%=rs.getString(4) %></td>
</tr>
<%
out.println("<br>");
rs.next();
i++;
}
%>
</table>
<%
out.println("<br>");
out.println("<br>");
out.println("<br>");
out.println("<br>");
out.println("        ");
if(list_notice < pageCount){
out.println(" <a href=NoticeList.jsp?list_notice="+ (list_notice+1) +">[下一页] </a>");
}
if(list_notice > 1){
out.println(" <a href=NoticeList.jsp?list_notice="+ (list_notice-1)+">[上一页] </a>");
}
out.println("        ");
out.println("共"+pageCount+"页");
out.println("        ");
out.println("第"+list_notice+"页");
out.println("        ");
out.println(" <a href=NoticeList.jsp?list_notice=" +1+ ">『首页』 </a>");
out.println("        ");
out.println(" <a href=NoticeList.jsp?list_notice="+pageCount+">『尾页』 </a>");
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/bbb";
String username = "root";
String password = "111111";
Class.forName(driverClass);
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
String sql = "select * from aa order by User DESC";
ResultSet rs = stmt.executeQuery(sql);
rs.last();
int pageSize = 5; //每页显示的记录数
int pageCount = 0; //总页数
int rowCount = rs.getRow(); //获取记录总数
//out.println(rowCount);
pageCount = (rowCount+pageSize-1)/pageSize;
int list_notice = 1; //当前页
//取得用户所指定的页
String goToPage = request.getParameter("list_notice");
if (goToPage == null){
goToPage = "1";
}
//转换成整形
try{
list_notice= Integer.parseInt(goToPage);
} catch (NumberFormatException ex){
list_notice = 1;
}
//当前页小于等于第一页 则按第一页算 如果 当前页大于等于总页数则为最后页
if(list_notice <=1){
list_notice = 1;
}
else if(list_notice >= pageCount){
list_notice = pageCount;
}
//游标的位置 (当前页 - 1) * 页面大小 + 1
int posion = (list_notice -1 ) * pageSize + 1;
//设置游标的位置
rs.absolute(posion);
//循环显示表中的数据 pageSize(每页所显示的记录)
//rs.isAfterLast() 游标是否在最后一行之后 说明后面已经没记录
int i=0;
%>
<table width="880">
<tr height = "8">
<td width="100" align="center" >公告标题</td>
<td width="680" align="center">公告内容</td>
<td width="100" align="center">公告日期</td>
</tr>
<%
while (i <pageSize && !rs.isAfterLast()){
%>
<tr>
<td width="100" align="center"><a href="front/notice/NoticeSingle.jsp?id=<%=rs.getString(1) %>"><b><%=rs.getString(2) %></b></a></td>
<td width="680" align="center"><%=rs.getString(3) %></td>
<td width="100" align="center"><%=rs.getString(4) %></td>
</tr>
<%
out.println("<br>");
rs.next();
i++;
}
%>
</table>
<%
out.println("<br>");
out.println("<br>");
out.println("<br>");
out.println("<br>");
out.println("        ");
if(list_notice < pageCount){
out.println(" <a href=NoticeList.jsp?list_notice="+ (list_notice+1) +">[下一页] </a>");
}
if(list_notice > 1){
out.println(" <a href=NoticeList.jsp?list_notice="+ (list_notice-1)+">[上一页] </a>");
}
out.println("        ");
out.println("共"+pageCount+"页");
out.println("        ");
out.println("第"+list_notice+"页");
out.println("        ");
out.println(" <a href=NoticeList.jsp?list_notice=" +1+ ">『首页』 </a>");
out.println("        ");
out.println(" <a href=NoticeList.jsp?list_notice="+pageCount+">『尾页』 </a>");
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
展开全部
1.先统计数据总数
2.设置每页显示条数
3.数据总数除以每页条数=总页数
4.获取当前页数
5.(当前页数-1)*每页显示条数+1=当前页第一条数据
6.循环显示当前页所有数据
分页就就是这样的。
2.设置每页显示条数
3.数据总数除以每页条数=总页数
4.获取当前页数
5.(当前页数-1)*每页显示条数+1=当前页第一条数据
6.循环显示当前页所有数据
分页就就是这样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序已发到你邮箱了。请加分。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询