JSP+Oracle 实现分页
来源:互联网 发布:编程社区论坛 编辑:程序博客网 时间:2024/05/16 12:11
一、oracle来实现分页的sql语句如下分析:
--每页显示6条数据select * from emp where rownum<=6;--总个数select count(1) from emp;--第1页select * from (select e.*, rownum r from emp e where rownum<=6*1)where r>(1-1)*6--第2页select * from (select e.*, rownum r from emp e where rownum<=6*2)where r>(2-1)*6--第3页select * from (select e.*, rownum r from emp e where rownum<=6*3)where r>(3-1)*6--第4页select * from (select e.*, rownum r from emp e where rownum<=6*4)where r>(4-1)*6
二、具体实现步骤如下:
1、封装数据Bean
/** * 实体类 * @author Administrator * */public class Emp {// shift+ctrl+Y 小写// shift+ctrl+X 大写private int empno;private String ename;private String job;private int mgr;private Date hiredate;private double sal;private double comm;private int deptno;public int getEmpno() {return empno;}public void setEmpno(int empno) {this.empno = empno;}.......}
2、封装分页Bean
package com.hlx.entity;/** * 分页Bean * @author Administrator * */public class PageInfo {private int pageSize=6; // 每页显示的个数private int pageCount; // 总个数private int pageTotal; // 总页数private int pageCurrent; // 当前页public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getPageCount() {return pageCount;}/** * 设置总个数,计算出总页数 * @param pageCount */public void setPageCount(int pageCount) {this.pageCount = pageCount;// 计算总页数this.pageTotal = (pageCount%pageSize==0)?(pageCount/pageSize):(pageCount/pageSize+1);}public int getPageTotal() {return pageTotal;}public int getPageCurrent() {return pageCurrent;}public void setPageCurrent(int pageCurrent) {this.pageCurrent = pageCurrent;}}
3、封装业务Bean
/** * 底层数据继承基类(BaseDao) * * @author Administrator * */public class EmpDao extends BaseDao {// 声明对象private String sql = "";private Connection con;private PreparedStatement ps;private ResultSet rs;private CallableStatement cs;/** * --(1)总个数 select count(1) from emp; * * @return */public int getCount() {sql = "select count(1) from emp";// 1)获得连接con = this.getConnection();// 2)获得ps对象try {ps = con.prepareStatement(sql);// 3)执行rs = ps.executeQuery();// 4)光标往下移rs.next();// 5)获得值return rs.getInt(1);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {this.closeAll(rs, ps, con); // 关闭}return 0;}/** * /** --(2)返回具体的数据(每页) select * from (select e.*, rownum r from emp e where * rownum<=6*2) where r>(2-1)*6 * * @param pageSize * 每页显示个数 * @param pageCurrent * 当前页 * @return 返回集合 */public List<Emp> getPageInfo(int pageSize, int pageCurrent) {// 存放结果List<Emp> lists = new ArrayList<Emp>();sql = " select * from (select e.*, rownum r from emp e where rownum<="+ pageCurrent + "*" + pageSize + ") where r>(" + pageCurrent+ "-1)*" + pageSize + "";// 1)获得连接con = this.getConnection();// 2)获得ps对象try {ps = con.prepareStatement(sql);// 3)执行rs = ps.executeQuery();// 4)遍历数据while (rs.next()) {// 封装对象Emp emp = new Emp(rs.getInt(1), rs.getString(2),rs.getString(3), rs.getInt(4), rs.getDate(5),rs.getDouble(6), rs.getDouble(7), rs.getInt(8));// 存入集合中lists.add(emp);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {this.closeAll(rs, ps, con); // 关闭}return lists;}}
4、页面来实现分页
<table border="1" width="738" height="65"><tbody><tr><td> 编号</td><td> 姓名</td><td> 工种</td><td> 上司</td><td> 日期</td><td> 工资</td><td> 奖金</td><td> 部门编号</td></tr><jsp:useBean id="dao" class="com.hlx.dao.EmpDao"></jsp:useBean><jsp:useBean id="pageInfo" class="com.hlx.entity.PageInfo"></jsp:useBean><% //获得总个数 int count = dao.getCount(); //获得当前页////////////////////////// String pageIndex=request.getParameter("pageIndex"); //判断 int pageCurrent = (pageIndex==null)?(1):(Integer.parseInt(pageIndex)); ///////////////////////////////////// //每页显示的个数 int pageSize = 6; //计算出总页数 pageInfo.setPageCount(count); //调用方法 List<Emp> lists = dao.getPageInfo(pageSize, pageCurrent); for(Emp emp :lists){%><tr><td><%=emp.getEmpno()%></td><td><%=emp.getEname()%></td><td><%=emp.getJob()%></td><td><%=emp.getMgr()%></td><td><%=emp.getHiredate()%></td><td><%=emp.getSal()%></td><td><%=emp.getComm()%></td><td><%=emp.getDeptno()%></td></tr><%}%></tbody></table>第<%=pageCurrent%>/<%=pageInfo.getPageTotal()%>页<%if(pageCurrent>1){%><a href="index.jsp?pageIndex=1">首页</a><a href="index.jsp?pageIndex=<%=pageCurrent-1%>">上一页</a><%}%><%if(pageCurrent<pageInfo.getPageTotal()){%><a href="index.jsp?pageIndex=<%=pageCurrent+1%>">下一页</a><a href="index.jsp?pageIndex=<%=pageInfo.getPageTotal()%>">末页</a><%}%><p /><%for(int i=1;i<=pageInfo.getPageTotal(); i++){%><a href="index.jsp?pageIndex=<%=i%>"><%=i%> </a><%}%><p /><select id="number" onchange="fun(this.value)"><%for(int i=1;i<=pageInfo.getPageTotal(); i++){%><option value="<%=i%>"><%=i%></option><%}%></select></body></html>
用三种不同的形式完成了分页(JSP+Oracle)。
0 0
- JSP+Oracle 实现分页
- jsp+oracle 实现简单的分页
- jsp+oracle实现简单的分页
- jsp+oracle分页技术
- jsp 连接Oracle 分页
- jsp 分页 oracle数据库
- jsp+oracle 的两种分页实现程序
- jsp连接oracle实现分页功能的源代码
- jsp实现分页,jsp前端分页
- JSP分页技术实现
- JSP分页技术实现
- JSP分页技术实现
- JSP分页技术实现
- 分页实现(jsp版)
- 分页实现(jsp版)
- 分页实现(jsp版)
- jsp实现分页技术
- JSP分页技术实现
- (转)Java中String类的方法及说明
- Tomcat 远程调试(remote debug)
- JPA2.1 中三个提升应用性能的新功能
- Swarm中binpack策略引起的棘手问题
- Layout Inflation as Intended
- JSP+Oracle 实现分页
- 分布式文件系统 FastDFS
- Jsp+Oracle调用存储过程
- 欢迎使用CSDN-markdown编辑器
- 将那些对称的字符串按从小到大的顺序输 出。字符串先以长度论大小,如果长度相同,再以 ASCII 码值为排序标准。
- poj1564Sum It Up【dfs】
- 组合模式
- leetcode有序单链表合并
- command line tools 安装