jsp 分页操作的实现
来源:互联网 发布:单例模式 java enum 编辑:程序博客网 时间:2024/05/30 23:07
先写一个 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 blocke.printStackTrace();}finally{SQLUtil.close(SQLUtil.getConn(), SQLUtil.getPs(), rs);}return arrayList;}//得到 PageCountpublic 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 exceptione.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 blocke.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);}
当每次点击上一页 或者是下一页时候,要将当前页面的值传到操作中,这样才能实现分页。
0 0
- jsp 分页操作的实现
- jsp 实现分页操作
- JSP的分页实现!
- JSP分页的实现
- jsp 分页的实现
- Jsp的分页操作源代码
- Jsp的分页操作源代码
- Jsp的分页操作源代码
- Jsp的分页操作源代码
- Jsp的分页操作源代码
- Jsp的分页操作源代码
- 使用纯JSP实现分页操作
- JSP分页技术的实现
- jsp 分页类的实现
- jsp分页功能的实现
- jsp分页功能的实现
- jsp页面的分页实现
- jsp分页技术的实现
- 关于CoreData和SQLite多线程访问时的线程安全问题
- HDU 4821 String (2013长春现场赛I题) 字符串Hash
- Linux基础:如何找出你的系统所支持的最大内存
- Multiply Strings 大数相乘
- rt-thread学习笔记开篇
- jsp 分页操作的实现
- C++实现MATLAB一维数组函数findpeaks()函数求一维离散值极值(波峰波谷)
- JVM-3-JVM中的父委托机制-源码体现
- nyoj-1053-Alice and Bob (N)
- Linux umask详解
- 计算蔬菜总价
- P51-13
- IOS成长之路-Nsstring中搜索方法rangeOfString
- C++ PRIMER PLUS (第六版) 中文版 第七章编程练习答案