jsp 分页操作的实现



先写一个   page类  代码大致如下:

public class Page {

	private static int pageSize=5;
	private static int pageNow = 0;
	private static int pageCount = 0;
	private static int rowCount = 0;
	public static int getPageSize() {
		return pageSize;
	}
	public static void setPageSize(int pageSize) {
		Page.pageSize = pageSize;
	}
	public static int getPageNow() {
		return pageNow;
	}
	public static void setPageNow(int pageNow) {
		Page.pageNow = pageNow;
	}
	public static int getPageCount() {
		return pageCount;
	}
	public static void setPageCount(int pageCount) {
		Page.pageCount = pageCount;
	}
	public static int getRowCount() {
		return rowCount;
	}
	public static void setRowCount(int rowCount) {
		Page.rowCount = rowCount;
	}
	
	
	
}
然后在写一个控制器即,写一个方法实现对数据的的分页操作;


import java.sql.*;
import java.util.ArrayList;

import com.mxf.dao.SQLUtil;
import com.mxf.pageing.Page;
import com.mxf.bean.*;

public class StudentService {

	//分页
	public ArrayList<Student> getUsersByPage(int pageNow,int pageSize)
	{
		ArrayList<Student> arrayList = new ArrayList<Student>();
		String sql = " SELECT * FROM  student ORDER BY id LIMIT "+(pageNow-1)*pageSize+","+pageSize+"";
		ResultSet rs=SQLUtil.executeQuery(sql, null);
		try {
			while(rs.next())
			{
				Student student = new Student();
				student.setId(rs.getInt("id"));
				student.setAddress(rs.getString("address"));
				student.setAge(rs.getInt("age"));
				student.setGrades(rs.getString("grades"));
				student.setResult(rs.getInt("result"));
				student.setSex(rs.getString("sex"));
				student.setStudentname(rs.getString("studentname"));
				arrayList.add(student);
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			SQLUtil.close(SQLUtil.getConn(), SQLUtil.getPs(), rs);
		}
		
		return arrayList;
	}
	
	//得到   PageCount
	public int getPageCount(int pageSize)
	{
		int rowCount = 0;
		
		String sql = "select count(*) from student";
		ResultSet rs = SQLUtil.executeQuery(sql, null);
		try {
			rs.next();
			rowCount= rs.getInt(1);
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			SQLUtil.close(SQLUtil.getConn(), SQLUtil.getPs(), rs);
		}
		
		return (rowCount-1)/pageSize + 1;
	}
	
	
	
	public Student getStudentById(String id)
	{
		Student student = new Student();
		String sql = "select * from student where id=?";
		String []parameters = {id};
		ResultSet rs = SQLUtil.executeQuery(sql, parameters);
		try {
			while(rs.next())
			{
				student.setId(rs.getInt("id"));
				student.setAddress(rs.getString("address"));
				student.setAge(rs.getInt("age"));
				student.setGrades(rs.getString("grades"));
				student.setResult(rs.getInt("result"));
				student.setSex(rs.getString("sex"));
				student.setStudentname(rs.getString("studentname"));
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.getStackTrace();
		}
		return student;
	}
	
	public boolean updateStudentById(Student student)
	{
		boolean flage = false;
		String sql ="update student set studentname=?,sex=?,age=?,result=?,address=?,grades=? where id=?";
		String []parameters = {student.getStudentname(),student.getSex(),student.getAge()+"",student.getResult()+"",student.getAddress(),student.getGrades(),student.getId()+""};
		if(SQLUtil.executeUpdate2(sql, parameters))
		{
			flage = true;
		}
		
		return flage;
	}
	
	public boolean delStudentById(String id)
	{
		boolean flage = false;
		String sql ="delete from student where id=?";
		String []parameters ={id};
		if(SQLUtil.executeUpdate2(sql, parameters))
		{
			flage=true;
		}
		return flage;
	}
	
	public Student selectStudentById(String id)
	{
		String sql = "select * from student where id=?";
		String []parameters ={id};
		ResultSet rs = SQLUtil.executeQuery(sql, parameters);
		Student student = new Student();
		try {
			while(rs.next())
			{
				student.setAddress(rs.getString("address"));
				student.setAge(rs.getInt("age"));
				student.setGrades(rs.getString("grades"));
				student.setId(rs.getInt("id"));
				student.setResult(rs.getInt("result"));
				student.setSex(rs.getString("sex"));
				student.setStudentname(rs.getString("studentname"));
				
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return student;
	}
	
	public boolean addStudent(Student stu)
	{
		boolean flage = false;
		String sql = "insert into student values (0,?,?,?,?,?,?)";
		String []parameters ={stu.getStudentname(),stu.getSex(),stu.getAge()+"",stu.getResult()+"",stu.getAddress(),stu.getGrades()};
		if(SQLUtil.executeUpdate2(sql, parameters))
		{
			flage=true;
		}
		return flage;
	}
	
	
}
接下来就是在jsp页面显示了

<%@ page language="java" import="java.util.*,com.mxf.bean.*,
com.mxf.service.*" pageEncoding="utf-8"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'ShowInfo.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  <%
		int pageNow = 1;    //表示第几页
		int pageSize = 5;   //表示每页显示几行
		int pageCount = 0;   //表示共有多少页
		//接收超链接pageNow数据
		String spageNow = request.getParameter("pageNow");	
		if(null!=spageNow)
		{
			pageNow = Integer.parseInt(spageNow);
		}
		
			pageCount = new StudentService().getPageCount(pageSize);
			ArrayList<Student> arrayList = new StudentService().getUsersByPage(pageNow, pageSize);		
	%>
			
   				<table border="1">
   					<tr><td>id</td><td>姓名</td><td>性别</td><td>年龄</td>
   					<td>成绩</td><td>地址</td><td>专业班级</td><td>修改信息</td>
   					<td>删除学生</td></tr>
			<%
			
			for(int i=0;i<arrayList.size();i++)
			{
				Student student = arrayList.get(i);
				
				%>
				<tr><td><%=student.getId() %></td><td><%=student.getStudentname() %></td><td><%=student.getSex() %></td><td><%=student.getAge() %></td><td><%=student.getResult() %></td>
				<td><%=student.getAddress() %></td><td><%=student.getGrades() %></td><td><a href="/studentManage/ShowInfoCl?type=goupdate&id=<%=student.getId() %>">修改信息</a></td><td><a href="/studentManage/ShowInfoCl?type=del&id=<%=student.getId() %>">删除学生</a></td></tr>
				<%
			}
   %>   
   		
   		</table>
   		
   
   <a href='/studentManage/ShowInfo.jsp?pageNow=<%=pageNow==1?pageNow:(pageNow-1) %>'>上一页</a>
   
   <%
   			for(int i=1;i<=pageCount;i++)
			{
			%>
			
				<a href='/studentManage/ShowInfo.jsp?pageNow=<%=i%>'><%=i %></a>
			<%	
			}
    %>
    
    <a href='/studentManage/ShowInfo.jsp?pageNow=<%=pageNow==pageCount?pageNow:(pageNow+1) %>'>下一页</a>
   		<a href="/studentManage/Manage.jsp">返回主界面</a>
  </body>
</html>
如此操作就可以实现简单的分页操作;

我在写分页操作的时候,遇到的难题有:

1.在写对数据库操作时候的 语句。这里需要注意的是,要计算出,共有多少条数据,能显示多少页,当前页面。

ArrayList<Student> arrayList = new ArrayList<Student>();
		String sql = " SELECT * FROM  student ORDER BY id LIMIT "+(pageNow-1)*pageSize+","+pageSize+"";
		ResultSet rs=SQLUtil.executeQuery(sql, null);
		try {
			while(rs.next())
			{
				Student student = new Student();
				student.setId(rs.getInt("id"));
				student.setAddress(rs.getString("address"));
				student.setAge(rs.getInt("age"));
				student.setGrades(rs.getString("grades"));
				student.setResult(rs.getInt("result"));
				student.setSex(rs.getString("sex"));
				student.setStudentname(rs.getString("studentname"));
				arrayList.add(student);
			}
			

当每次点击上一页 或者是下一页时候,要将当前页面的值传到操作中,这样才能实现分页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值