`
bufferW
  • 浏览: 19156 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jsp和oracle结合分页demo

 
阅读更多


/*==============================================================*/
/* 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;



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());
}
}




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;
}
}



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;
}
}




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;
}
}




<%@ 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 插件demo

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

    JavaWeb_jsp分页技术实例

    通过这个"JavaWeb_jsp分页技术实例",开发者可以了解到如何结合JSP、Servlet和数据库来实现一个完整的分页系统,这对于任何处理大量数据的JavaWeb应用都是非常有价值的。在实践中,你可以根据具体需求进行调整和扩展...

    jsp到java代码到数据的简单页面的增删改查以及分页展示

    在IT行业中,尤其是Web开发领域,Java是...通过阅读和理解这些代码,你可以更深入地了解如何将JSP与Java代码结合,以及如何进行数据库操作和分页处理。这是一次很好的学习机会,有助于你掌握Web开发的基本流程和技巧。

    java web项目分页通用实现

    1. 数据库查询:在SQL中,可以使用LIMIT和OFFSET关键字(MySQL)或ROW_NUMBER() OVER()(Oracle,SQL Server)来实现分页。例如,假设每页显示10条记录,第一页的查询可以写为: ```sql SELECT * FROM table LIMIT...

    adf demo page

    在“adf demo page”中,我们看到的是一个关于ADF实践的介绍,特别是如何创建一个基于JSF(JavaServer Faces)的页面来展示数据分页功能。 首先,让我们详细了解一下`testPaging.jsp`的创建过程。这个页面是ADF应用...

    demo母版(gradle+springboot+freemarker+pagehelper).zip

    这是一个基于Java技术栈的开发示例项目,名为“demo母版”,它整合了Gradle构建工具、Spring Boot应用框架、Freemarker模板引擎以及PageHelper分页插件。这个项目旨在提供一个快速启动的开发环境,帮助开发者了解并...

    jQuery easy ui + SpringMVC

    本资源是本人将SpringMVC + jQuery easy ui整合的CRUD demo,后台核心是spring注解实现的(通过jsbcTemplate连接数据库),前台有基本的jsp和easy ui 两种展现方式,数据库使用oracle,可以通过更改配置文件和驱动jar...

    单点登录源码

    本系统是基于RBAC授权和基于用户授权的细粒度权限控制通用平台,并提供单点登录、会话管理和日志管理。接入的系统可自由定义组织、角色、权限、资源等。用户权限=所拥有角色权限合集+用户加权限-用户减权限,优先级...

Global site tag (gtag.js) - Google Analytics