1、前端分页
2、后台(java)分页
3、数据库(oracle)分页
1.1、简单的jsp分页
int pageSize:每页显示多少条记录
int pageNow:希望显示第几页
int pageCount:一共有多少页
int rowCount:一共有多少条记录
获取总页数
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
点击首页、上一页、下一页、尾页的行为
<a href="multipage.jsp?pageNow=1" >首页</a>
<a href="multipage.jsp?pageNow=<%pageNow+1%>" >下一页</a>
<a href="multipage.jsp?pageNow=<%pageNow-1%>" >上一页</a>
<a href="multipage.jsp?pageNow=<%pageCount%>" >尾页</a>
测试:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>hello</title>
</head>
<body>
<table border="1" spacing="2">
<%!
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String USER = "root";
public static final String PASS = "111122";
public static final String URL = "jdbc:mysql://localhost:3306/mysql";
//自定义单页记录数量,总页数,当前页
int pageSize = 5;
int pageCount;
int pageNow = 1;
%>
<%
String user = null;
String pass = null;
try{
Class.forName(DRIVER);
Connection con = DriverManager.getConnection(URL,USER,PASS);
String sql = "SELECT * FROM help_topic";
PreparedStatement stat = con.prepareStatement(sql);
ResultSet rs = stat.executeQuery();
rs.last();
int rowCount = rs.getRow();
pageCount = (rowCount%pageSize==0)?(rowCount/pageSize):(rowCount/pageSize+1);
String now = request.getParameter("pageNow");
if(now==null){
pageNow=1;
}
pageNow = Integer.parseInt(now);
if(pageNow>=pageCount) pageNow = pageCount;
boolean flag = rs.absolute((pageNow-1)*pageSize+1);
int count = 0;
do{
if(count>=pageSize)break;
int empno = rs.getInt(1);
String name = rs.getString(2);
String description = rs.getString(4);
String url = rs.getString(6);
count++;
%>
<tr>
<td><%=empno%></td>
<td><%=name%></td>
<td><%=description%></td>
<td><%=url%></td>
</tr>
<%
}while(rs.next());
con.close();
}
catch(Exception e){
}
%>
</table>
<a href = "page1.jsp?pageNow=1" >首页</a>
<a href = "page1.jsp?pageNow=<%=pageNow-1%>" >上一页</a>
<a href = "page1.jsp?pageNow=<%=pageNow+1%>" >下一页</a>
<a href = "page1.jsp?pageNow=<%=pageCount%>" >尾页</a>
第<%=pageNow%>页/共<%=pageCount%>页
</body>
</html>
public boolean first(); 该方法的作用是将当前行定位到数据库记录集的第一行。
public boolean last(); 该方法的作用刚好和first()方法相反。
public boolean next(); 该方法的作用是将数据库游标向后移动一位,使得下一行成为当前行,当刚刚打开记录集对象时,数据库游标的位置在记录集的最前面,第一次使用next()方 法将会使数据库游标定位到记录集的第一行,第二次使用next()方法将会使数据库游标定位到记录集的第二行,以此类推。
1.2、springmvc+mybatis+jsp端的分页