`

oracle+jsp实现分页

阅读更多

jsp+oracle实现简单分页
/*1*/
/*==============================================================*/ 
/* Table: t_student                                           */ 
/*==============================================================*/ 
create table t_student  ( 
   s_id              char(10)                        not null, 
   s_name             varchar2(20)                    not null, 
   s_age              char(2)                         not null, 
   s_sex              char(2)                         not null, 
   s_class            varchar2(20), 
   constraint PK_T_STUDENT primary key (s_id) 
); 
 
insert into t_student values('0001','张三','20','男','08级二班') ; 
insert into t_student values('0002','李四','21','女','08级二班') ; 
insert into t_student values('0003','王五','20','男','08级二班') ; 
insert into t_student values('0004','赵柳','20','女','08级一班') ; 
insert into t_student values('0005','杨梅','21','男','08级二班') ; 
insert into t_student values('0006','刘海','23','女','08级一班') ; 
insert into t_student values('0007','孙江','20','女','08级一班') ; 
insert into t_student values('0008','苏灿','22','男','08级二班') ; 
insert into t_student values('0009','王霞','23','女','08级一班') ; 
insert into t_student values('0010','王猛','22','男','08级二班') ; 
insert into t_student values('0011','张相','22','女','08级一班') ; 
insert into t_student values('0012','香橙','20','女','08级一班') ; 
insert into t_student values('0013','李心','21','女','08级二班') ; 
insert into t_student values('0014','张强','20','男','08级一班') ; 
insert into t_student values('0015','赵琳','21','女','08级一班') ; 
insert into t_student values('0016','刘达','21','男','08级二班') ; 
insert into t_student values('0017','苏惠','20','女','08级二班') ; 
insert into t_student values('0018','贾瑞','20','女','08级一班') ; 
insert into t_student values('0019','谷瑞坤','22','男','08级二班') ; 
insert into t_student values('0020','祥还','21','男','08级一班') ; 
commit;




/*2*/
import java.sql.*; 
 
public class DbUtil { 
 
    private static final String driver = "oracle.jdbc.driver.OracleDriver" ; 
    private static final String url = "jdbc:oracle:thin:@10.10.10.2:1521:orcl" ; 
    private static final String username = "test" ; 
    private static final String password = "test" ; 
    public static Connection getConnection(){ 
        Connection conn = null ; 
        try{ 
            Class.forName(driver) ; 
            conn = DriverManager.getConnection(url, username, password) ; 
        }catch(Exception e){ 
            e.printStackTrace() ; 
        } 
        return conn ; 
    } 
 
    public static void close(Connection conn) { 
        if (conn != null) { 
            try { 
                conn.close(); 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
     
    public static void close(PreparedStatement pstmt) { 
        if (pstmt != null) { 
            try { 
                pstmt.close(); 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
     
    public static void close(ResultSet rs ) { 
        if (rs != null) { 
            try { 
                rs.close(); 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
    public static void main(String[] args) { 
        System.out.println(DbUtil.getConnection()); 
    } 





/*3*/


public class Student { 
 
    private String s_id ; 
    private String s_name ; 
    private String s_age ; 
    private String s_sex ; 
    private String s_class ; 
    public String getS_id() { 
        return s_id; 
    } 
    public void setS_id(String s_id) { 
        this.s_id = s_id; 
    } 
    public String getS_name() { 
        return s_name; 
    } 
    public void setS_name(String s_name) { 
        this.s_name = s_name; 
    } 
    public String getS_age() { 
        return s_age; 
    } 
    public void setS_age(String s_age) { 
        this.s_age = s_age; 
    } 
    public String getS_sex() { 
        return s_sex; 
    } 
    public void setS_sex(String s_sex) { 
        this.s_sex = s_sex; 
    } 
    public String getS_class() { 
        return s_class; 
    } 
    public void setS_class(String s_class) { 
        this.s_class = s_class; 
    } 

  创建学生管理类:package com.stmcc.test.util;
Java代码 
import com.stmcc.test.*; 
import java.sql.* ; 
import java.util.*;  
public class StuManager { 
 
    private static StuManager instance = new StuManager() ; 
     
    private StuManager(){} ; 
     
    public static StuManager getInstance(){ 
        return instance ; 
    } 
//  oracle实现分页的查询语句 
//  select s_id, s_name, s_age, s_sex, s_class 
//  from 
//  ( 
//    select rownum rn, s_id, s_name, s_age, s_sex, s_class 
//    from 
//      (select s_id, s_name, s_age, s_sex, s_class  
//       from t_student order by s_id 
//      )where rownum <= 10 
//  )where rn > 5 ; 
    public PageModel findStudentList(int pageNo, int pageSize){ 
        PageModel pageModel = null ; 
        StringBuffer sql = new StringBuffer() ; 
        sql.append("select s_id, s_name, s_age, s_sex, s_class ") 
            .append("from") 
            .append("(") 
            .append("select rownum rn, s_id, s_name, s_age, s_sex, s_class ") 
            .append("from") 
            .append("(") 
            .append("select s_id, s_name, s_age, s_sex, s_class ") 
            .append("from t_student order by s_id") 
            .append(")") 
            .append("where rownum <= ?") 
            .append(")") 
            .append("where rn > ? "); 
        Connection conn = null ; 
        PreparedStatement pstmt = null ; 
        ResultSet rs = null ; 
        try{ 
            conn = DbUtil.getConnection() ; 
            pstmt = conn.prepareStatement(sql.toString()) ; 
            pstmt.setInt(1, pageNo*pageSize) ; 
            pstmt.setInt(2, (pageNo - 1)*pageSize) ; 
            rs = pstmt.executeQuery() ; 
            List<Student> stuList = new ArrayList<Student>() ; 
            while (rs.next()){ 
                Student stu = new Student() ; 
                stu.setS_id(rs.getString("s_id")) ; 
                stu.setS_name(rs.getString("s_name")) ; 
                stu.setS_age(rs.getString("s_age")) ; 
                stu.setS_sex(rs.getString("s_sex")) ; 
                stu.setS_class(rs.getString("s_class")) ; 
                stuList.add(stu) ; 
            } 
            pageModel = new PageModel() ; 
            pageModel.setList(stuList) ; 
            pageModel.setTotalRecords(getTotalRecords(conn)) ; 
            pageModel.setPageSize(pageSize); 
            pageModel.setPageNo(pageNo); 
        }catch(Exception e){ 
            e.printStackTrace() ; 
        }finally{ 
            DbUtil.close(rs) ; 
            DbUtil.close(pstmt) ; 
            DbUtil.close(conn) ; 
        } 
        return pageModel ; 
    } 
    /**
     * 取得总记录数
     * @param conn
     * @return
     */ 
    private int getTotalRecords(Connection conn)  
    throws SQLException { 
        String sql = "select count(*) from t_student"; 
        PreparedStatement pstmt = null; 
        ResultSet rs = null; 
        int count = 0; 
        try { 
            pstmt = conn.prepareStatement(sql); 
            rs = pstmt.executeQuery(); 
            rs.next(); 
            count = rs.getInt(1); 
        }finally { 
            DbUtil.close(rs); 
            DbUtil.close(pstmt); 
        } 
        return count; 
    } 

 创建分页模型类实现业务逻辑:package com.stmcc.test.util;
Java代码 
import java.util.* ; 
public class PageModel { 
 
    //结果集 
    private List list ; 
     
    //查询总记录数 
    private int totalRecords ; 
     
    //每页多少条数据 
    private int pageSize ; 
     
    //第几页 
    private int pageNo ; 
     
    /**
     * 总页数
     * @return
     */ 
    public int getTotalPages(){ 
        return (totalRecords + pageSize -1) / pageSize ; 
    } 
     
    /**
     * 取得首页
     * @return
     */ 
    public int getTopPageNo(){ 
        return 1 ; 
    } 
     
    /**
     * 上一页
     * @return
     */ 
    public int getPreviousPageNo(){ 
        if(pageNo <= 1){ 
            return 1 ; 
        } 
        return pageNo - 1 ; 
    } 
     
    /**
     * 下一页
     * @return
     */ 
    public int getNextPageNo(){ 
        if(pageNo >= getBottomPageNo()){ 
            return getBottomPageNo() ; 
        } 
        return pageNo + 1 ; 
    } 
     
    /**
     * 取得尾页
     * @return
     */ 
    public int getBottomPageNo(){ 
        return getTotalPages() ; 
    } 
 
    public List getList() { 
        return list; 
    } 
 
    public void setList(List list) { 
        this.list = list; 
    } 
 
    public int getTotalRecords() { 
        return totalRecords; 
    } 
 
    public void setTotalRecords(int totalRecords) { 
        this.totalRecords = totalRecords; 
    } 
 
    public int getPageSize() { 
        return pageSize; 
    } 
 
    public void setPageSize(int pageSize) { 
        this.pageSize = pageSize; 
    } 
 
    public int getPageNo() { 
        return pageNo; 
    } 
 
    public void setPageNo(int pageNo) { 
        this.pageNo = pageNo; 
    } 

 jsp页面:<%@ page contentType="text/html" pageEncoding="GBK"%>
Java代码 
<%@ page import="com.stmcc.test.util.*"%> 
<%@ page import="com.stmcc.test.*"%> 
<%@ page import="java.sql.*"%> 
<%@ page import="java.util.*"%> 
<html> 
<head><title>分页展示</title></head> 
<% 
    int pageNo = 1 ; 
    int pageSize = 5 ; 
    String pageNoString = request.getParameter("pageNo") ; 
    if(pageNoString != null){ 
        pageNo = Integer.parseInt(pageNoString) ; 
    } 
    PageModel pageModel = StuManager.getInstance().findStudentList(pageNo,pageSize) ; 
%> 
<script type="text/javaScript"> 
    function topPage() { 
        window.self.location = "student.jsp?pageNo=<%=pageModel.getTopPageNo()%>"; 
    } 
     
    function previousPage() { 
        window.self.location = "student.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>"; 
    }    
     
    function nextPage() { 
        window.self.location = "student.jsp?pageNo=<%=pageModel.getNextPageNo()%>"; 
    } 
     
    function bottomPage() { 
        window.self.location = "student.jsp?pageNo=<%=pageModel.getBottomPageNo()%>"; 
    } 
</script> 
<body> 
<center> 
  <table border="1"> 
  <tr> 
    <td>学生编号</td> 
    <td>学生姓名</td> 
    <td>学生年龄</td> 
    <td>学生性别</td> 
    <td>学生班级</td> 
  </tr> 
  <% 
    List stuList = pageModel.getList() ; 
    for(Iterator<Student> iter = stuList.iterator(); iter.hasNext();){ 
        Student stu = iter.next() ; 
  %> 
  <tr> 
    <td><%=stu.getS_id() %></td> 
    <td><%=stu.getS_name() %></td> 
    <td><%=stu.getS_age() %></td> 
    <td><%=stu.getS_sex() %></td> 
    <td><%=stu.getS_class() %></td> 
  </tr> 
  <% 
    } 
  %> 
  <tr><td colspan="5"> 
      共&nbsp;<%=pageModel.getTotalPages() %>&nbsp;页&nbsp;&nbsp;&nbsp;&nbsp; 
      当前第&nbsp;<%=pageModel.getPageNo() %>页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="button" value="首页" onClick="topPage()"> 
  <input type="button" value="上一页" onClick="previousPage()"> 
  <input type="button" value="下一页" onClick="nextPage()"> 
  <input type="button" value="尾页" onClick="bottomPage()"> 
  </td></tr> 
  </table> 
</center> 
</body> 
</html> 

分享到:
评论

相关推荐

    jsp+oracle实现简单的分页

    在本文中,我们将探讨如何使用JSP和Oracle数据库来实现一个简单的分页功能。分页是Web应用程序中常见的需求,特别是在处理大量数据时,它能够提高用户体验,避免一次性加载过多数据导致页面响应变慢。 首先,我们...

    详细的jsp分页程序!(oracle+jsp+apache)

    我的一个详细的jsp分页程序!(oracle+jsp+apache)

    Java+jsp后台分页 oracle数据库

    这是我自己改的分页代码 呵呵 写了将近一个星期 只有一个控制类和一个jsp页 方便阅读和修改 只要修改test.java里面的数据库连接和表名就可以用了 希望大家工作和学习顺利 里面的class12.jar这个包是因为我的数据库...

    java中级笔记+severlet jsp 分页 ajax等技术的笔记

    5. **Java笔记**:这份笔记可能包含了对这些技术的深入理解和实践案例,包括但不限于:Servlet的配置与部署、JSP的EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)、分页实现的各种策略...

    jsp+hibernate实现的分页,java代码

    本项目是基于`jsp`(Java Server Pages)和`Hibernate`框架实现的分页功能,通过Java代码来详细展示了如何在Web应用中高效地实现这一功能。 `jsp`是Java的一种动态网页技术,允许开发者在HTML中嵌入Java代码,以...

    jsp+JavaBean+Servlet_Oracle和Mysql分页

    本项目聚焦于使用JSP、JavaBean和Servlet技术,结合Oracle与MySQL两种主流关系型数据库实现分页功能。以下将详细介绍这些技术及其在分页中的应用。 1. JSP(JavaServer Pages):JSP是一种动态网页技术,允许开发...

    java oracle数据库过程实现jsp分页

    以下是一个简单的JSP分页显示示例: ```jsp &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; &lt;%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %&gt; ${result.rows}"&gt; &lt;!--...

    SSH+ORACLE好用分页

    在这个场景下,"SSH+ORACLE好用分页"意味着我们将SSH框架与Oracle数据库结合,实现了高效的数据分页功能。 数据分页是Web应用中常见的需求,特别是在处理大量数据时,分页可以提高用户体验,避免一次性加载过多数据...

    ssh+oracle分页

    在“ssh+oracle分页”这个主题中,我们将深入探讨如何利用这三个框架与Oracle数据库进行集成,并实现数据的分页显示。 1. **Struts框架**:Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。...

    使用JSP+JavaBean+Servlet实现数据分页

    本教程将详细讲解如何利用JSP(JavaServer Pages)、JavaBean和Servlet技术来实现数据分页功能。我们将讨论以下几个关键知识点: 1. **JSP基础**:JSP是Java的一种动态网页技术,它允许我们在HTML页面中嵌入Java...

    javabean+jsp分页查询

    总结来说,"javabean+jsp分页查询"项目结合了JavaBeans数据模型、JSP视图渲染和数据库操作,实现了用户友好的数据浏览和录入功能,是Java Web开发中的基础实践。通过这个项目,开发者可以深入理解数据持久化、前端...

    网上书城+购物车实现java初学 oracle+servlet+jsp

    标题 "网上书城+购物车实现java初学 oracle+servlet+jsp" 描述了一个基于Java技术的网上书店项目,该项目涵盖了用户登录、注册、书籍分页显示、购物车功能以及订单处理等一系列基本的电商功能。这里我们将深入探讨...

    jsp+servlet+oracle模仿百度分页

    带学员课上做的oracle模仿百度分页样式的例子。比较适合初学者参考,jdbc工具类是自己写的,没有使用第三方分页组件。tomcat是apache-tomcat-7.0.41,myeclipse是MyEclipse 9.0,oracle是11g。例子中用的是海量数据...

    jsp+oracle常用分页功能

    总结起来,本示例通过JSP和Oracle数据库的结合,展示了如何在Web应用中实现分页功能,对初学者而言是一次宝贵的实践机会,能帮助他们更好地理解和运用相关技术。通过深入学习和实践这些例子,开发者可以逐步掌握分页...

    Oracle&JSP分页和Oracle分页

    总结来说,Oracle和JSP结合实现分页涉及以下几个步骤:在Oracle中构造分页查询,使用JDBC在Servlet中执行查询,然后在JSP页面中展示数据。理解并熟练掌握这些步骤对于开发高效、用户友好的数据驱动网站至关重要。在...

    SSH+ORACLE通用分页

    当这两者结合时,通常是为了实现数据的高效管理和展示,特别是分页查询,这对于提升用户体验和减轻服务器压力至关重要。 SSH框架中的Spring作为核心框架,负责管理对象和依赖注入,提供事务控制等;Struts作为表现...

    jsp分页 oracle 插件demo

    本篇将详细介绍如何在JSP(JavaServer Pages)环境中,结合Oracle数据库实现分页功能,并通过一个名为"jsp分页 oracle 插件demo"的示例来演示具体步骤。 首先,我们需要了解JSP分页的基本原理。在JSP中,分页通常...

    使用jsp+mvc+servlet实现分页

    本项目是基于JSP(JavaServer Pages)+MVC(Model-View-Controller)设计模式+Servlet实现的分页功能,这是一套经典的Java Web开发架构。 首先,我们来理解JSP。JSP是Java的一种视图技术,它允许开发者在HTML中嵌入...

    oracle ODBC桥接连接+手写jsp分页

    总之,Oracle ODBC桥接连接对于与Oracle数据库交互提供了广泛的支持,而手写JSP分页则是构建高效Web应用的重要技能。通过深入学习这些知识点,你可以更好地掌握数据库连接和Web开发的核心技术。

Global site tag (gtag.js) - Google Analytics