`
MiracleSnow
  • 浏览: 1028 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于java Web分页操作

阅读更多

     大二的计科专业学生,感觉课堂上学的不够,所以自学了jsp+servlet,跟着视频做网上商城和论坛的项目,用的是mvc模式,这当中都涉及到了分页操作,我看完后觉得比较好的是一种是这样的:

先创建JavaBean

 

import java.util.ArrayList;
 
 public class PageBean {
     private int pageNow;//第几页
     private int pageSize;//每页显示几个记录
     private int pageCount;//总页数
     private int rowCount;//总记录数
     private ArrayList al;//该页要显示的记录
     
     public PageBean() {
         
     }
     public int getPageNow() {
         return pageNow;
     }
     public void setPageNow(int pageNow) {
         this.pageNow = pageNow;
     }
     public int getPageSize() {
         return pageSize;
     }
     public void setPageSize(int pageSize) {
         this.pageSize = pageSize;
     }
     public int getPageCount() {
         return pageCount;
     }
     public void setPageCount(int pageCount) {
         this.pageCount = pageCount;
     }
     public int getRowCount() {
         return rowCount;
     }
     public void setRowCount(int rowCount) {
         this.rowCount = rowCount;
     }
     public ArrayList getAl() {
         return al;
     }
     public void setAl(ArrayList al) {
         this.al = al;
     }
     
 }

 

 

 

 然后是一个操作数据库的工具类,其中进行分页的方法是:

 

//我以对论坛中的帖子分页为例,显示pid=0的帖子并分页,Article是帖子类
 public static void getPageInfo(PageBean pb){
     int pageNow = pb.getPageNow();//获得要显示的页数
     int pageSize = pb.getPageSize();//获得每页显示的记录数
     int rowCount = 0;
     int pageCount = 0;
     ArrayList al = new ArrayList();
     try {
         ct = getConnection();
         ps=ct.prepareStatement("select top "+pageSize
                 +" * from article where  pid = 0 and id not in (select top "
                 +pageSize*(pageNow-1)+" id from article where pid = 0) ");
         rs = ps.executeQuery();
         while (rs.next()){
             Article article= new Article();
             article.setId(rs.getInt(1));
             article.setPid(rs.getInt(2));
             article.setRootId(rs.getInt(3));
             article.setTitle(rs.getString(4));
             article.setCont(rs.getString(5));
             article.setPdate(rs.getTimestamp(6));
             article.setIsLeaf(rs.getInt(7));
             al.add(article);
         }
         pb.setAl(al);//赋值要显示页的记录
         ps = ct.prepareStatement("select count(*) from article where pid = 0");
         rs = ps.executeQuery();
         if (rs.next()){
             rowCount = rs.getInt(1);//得到记录总数
         }
         pageCount = (rowCount - 1) / pageSize + 1;//得到页总数
         pb.setPageCount(pageCount);
         pb.setRowCount(rowCount);
     } catch (Exception e) {
         e.printStackTrace();
         throw new RuntimeException(e.getMessage());
     } finally {
         close(rs, ps, ct);
     }
 }

 

 在昨天晚上,我突然想到了另外一种思路:

 

//我换了另一种思路,就是先把pid=0的帖子都取出来,再取出其中要显示页的记录封装到ArrayList中
 //上面一种是先把要显示页的记录取出来,再把记录封装到ArrayList中
 public static void getPageInfo(PageBean pb){
     int pageNow = pb.getPageNow();//获得要显示的页数
     int pageSize = pb.getPageSize();//获得每页显示的记录数
     int rowCount = 0;
     int pageCount = 0;
     ArrayList al = new ArrayList();
     try {
         ct = getConnection();
         ps=ct.prepareStatement("select * from article pid = 0"); 
         rs = ps.executeQuery();
         int startPos = (pageNow - 1 ) * pageSize;
         int i = 0;
         while (rs.next()){
             if (i == startPos){
                 for (int j = 0; j < pageSize; j++){
                     Article article= new Article();
                     article.setId(rs.getInt(1));
                     article.setPid(rs.getInt(2));
                     article.setRootId(rs.getInt(3));
                     article.setTitle(rs.getString(4));
                     article.setCont(rs.getString(5));
                     article.setPdate(rs.getTimestamp(6));
                     article.setIsLeaf(rs.getInt(7));
                     al.add(article);
                     if (!rs.next()){
                         break;
                     }
                 }
                 break;
             }
             i++;
         }
         pb.setAl(al);//赋值要显示页的记录
         ps = ct.prepareStatement("select count(*) from article where pid = 0");
         rs = ps.executeQuery();
         if (rs.next()){
             rowCount = rs.getInt(1);//得到记录总数
         }
         pageCount = (rowCount - 1) / pageSize + 1;//得到页总数
         pb.setPageCount(pageCount);
         pb.setRowCount(rowCount);
     } catch (Exception e) {
         e.printStackTrace();
         throw new RuntimeException(e.getMessage());
     } finally {
         close(rs, ps, ct);
     }
 }

 

 使用举例:

 

int pageNow = 1;
 int pageSize = 4;
 String pagenow = request.getParameter("pageNow");
 if (pagenow != null){
     pageNow = Integer.parseInt(pagenow);
 }
 PageBean pb = new PageBean();
 pb.setPageNow(pageNow);
 pb.setPageSize(pageSize);
 SqlHelper.getPageInfo(pb);
 request.setAttribute("pagebean", pb);
 request.getRequestDispatcher("/XXX.jsp").forward(request, response);

 

 

上述就是我对分页操作的一点想法,一种是先把pid=0的帖子都取出来,再取出其中要显示页的记录封装到ArrayList中,另一种是先把要显示页的记录取出来,再把记录封装到ArrayList中。不知道实际开发中是怎么进行分页操作的,这仅是我自学后的一点点思考,希望前辈们给我点意见。

分享到:
评论

相关推荐

    java web 分页 设计

    ### Java Web 分页设计知识点详解 #### 一、分页设计概述 在Java Web开发中,当需要展示大量数据时,通常会采用分页技术来提高用户体验和减轻服务器负担。分页可以有效地控制每次加载的数据量,使得用户界面更加...

    java分页web实现

    Java分页技术是Web开发中的一个关键组成部分,尤其是在处理大量数据时,为了提高用户体验和系统性能,分页显得尤为重要。本教程将详细讲解如何在Java环境下实现Web应用的分页功能,并提供一个测试数据库供学习者参考...

    java web项目分页通用实现

    在Java Web开发中,分页是一项非常常见的需求,它能够帮助用户更有效地浏览大量数据,提高用户体验。本DEMO主要展示了如何实现一个通用的分页功能,覆盖了后台和前台的处理逻辑。以下是对这个主题的详细阐述: 一、...

    JAVA Web分页实例代码

    在JAVA Web开发中,分页功能是常见...总的来说,JAVA Web分页实例代码提供了实际操作的参考,有助于开发者掌握分页的实现原理,提升开发效率。通过学习和实践这个例子,你可以更好地理解如何在实际项目中应用分页技术。

    java web分页项目

    【Java Web分页项目】是基于Java和JSP技术实现的一个Web应用程序,主要目标是解决在Web应用中处理大量数据时的效率问题。在数据库驱动的Web应用中,一次性加载所有数据可能导致页面加载慢,用户体验下降,甚至服务器...

    Java Web中分页标签的使用说明

    在Java Web开发中,分页是必不可少的功能,它允许用户以更易管理的方式查看大量数据。本篇文章将详细讲解如何在Java Web应用中使用分页标签。我们将主要围绕以下两个核心概念进行讨论:源码理解和工具的使用。 首先...

    java web 分页管理器

    Java Web分页管理器是一种用于处理大量数据分页显示的技术,尤其在与微软数据库如SQL Server配合使用时,能够高效地提升用户体验。在Web应用程序中,分页是必不可少的功能,尤其是在展示诸如用户列表、订单历史或者...

    java web分页显示

    在Java Web开发中,分页显示是一项非常重要的功能,它能有效地管理大量数据,提高用户体验,避免一次性加载过多数据导致的性能问题。本教程将详细讲解如何在SQL Server 2005数据库环境下,利用JDBC进行分页查询,以...

    java web与Oracle数据的分页功能

    在Java Web开发中,与Oracle数据库进行交互时,分页功能是常见的需求,尤其是在处理大量数据时,为了提高用户体验和加载速度,分批次地显示数据是必不可少的。本项目提供的源代码正是针对这一需求,提供了在Java Web...

    java 数据分页显示

    在Java编程中,数据分页显示是Web应用中常见的需求,尤其在处理大量数据时,为了提高用户体验并优化服务器性能,通常需要将数据分成多个页面进行展示。本篇将深入探讨Java实现数据分页显示的核心技术和策略。 首先...

    Java Web分页技术与实现.pdf

    "Java Web分页技术与实现" Java Web分页技术是指在Java Web应用中对显示的数据进行分页显示,以提高用户体验和系统性能。分页技术可以在Web服务器中或数据库服务器中实现。 在Web服务器中实现分页可以利用...

    java web 分页详解1

    总的来说,Java Web分页是通过合理的设计和适当的工具,结合数据库查询和内存处理,来实现高效、灵活的数据浏览功能。理解其原理和实践,对于提升Web应用的性能和用户体验至关重要。在实际项目中,应根据具体需求...

    Java web 分页技术

    Java Web分页技术是Web应用程序中常用的一种数据展示方式,它允许用户逐步浏览大量的数据集合,而不会一次性加载所有数据,从而提高页面加载速度和用户体验。Struts2作为一款流行的MVC框架,提供了实现分页功能的...

    java web分页技术

    Java Web分页技术是网页应用开发中不可或缺的一部分,主要用于处理大量数据查询时的展示问题。在JSP(Java Server Pages)开发中,分页技术能够有效地提高系统性能,提升用户体验。下面将详细介绍分页的基本概念、...

    java web常用到的ajax分页思路

    在Java Web开发中,Ajax...总的来说,Java Web中的Ajax分页技术结合了前端交互、后端处理和数据库操作,通过异步通信提升了用户体验。理解和掌握这一技术,对提升Web应用的性能和用户满意度有着重要的意义。

    java web利用数据库分页

    在Java Web开发中,数据库分页是一种常见的技术,用于处理大量数据时提高应用程序的性能和用户体验。当数据集过大,一次性加载所有记录到用户界面可能导致内存压力和响应速度下降。因此,分页允许用户逐步浏览数据,...

    java万能分页代码

    Java万能分页代码是Java开发中常用的工具,尤其在处理大数据量的Web应用时,分页技术能够显著提升用户体验并优化服务器性能。这个3.0版本的分页代码库通常包含了一些经过优化的分页算法和接口,适用于各种场景,如...

    java-web-mysql 分页demo

    【Java-Web-Mysql 分页实现详解】 在Java Web开发中,当数据量较大时,为了提高用户体验,通常会采用分页的方式来展示数据。本示例"java-web-mysql 分页demo"提供了一个完整的Java Web应用程序,它结合了MySQL...

    JAVA开发WEB分页封装办法实现

    本文将深入探讨如何在Java中实现Web分页封装,以便在实际项目中灵活应用。 首先,我们需要了解分页的基本概念。分页是将大量数据分割成较小、可管理的部分,每次只加载一部分到前端显示。这有助于减少网络传输的...

    Java web分页功能的实现添加功能借助Servlet实现

    在Java Web开发中,分页...总结,Java Web中的分页功能主要依赖于Servlet、JDBC和数据库操作,通过合理的SQL构建和页面渲染,可以提供良好的用户体验。在实际项目中,还需要关注性能优化、安全性以及代码的可维护性。

Global site tag (gtag.js) - Google Analytics