当前位置:  技术问答>java相关

请问你们都是如何做的呢?~分页显示

    来源: 互联网  发布时间:2015-10-07

    本文导语:  查询表记录。记录过多。想每10条一页,按翻页可以显示下10条。 请问你们都是如何做的呢? 谢谢。 | 我已经贴过很多次了,不在乎再来一次,看来我的这个bean很赚分阿,给我带来了不少收...

查询表记录。记录过多。想每10条一页,按翻页可以显示下10条。
请问你们都是如何做的呢?

谢谢。

|
我已经贴过很多次了,不在乎再来一次,看来我的这个bean很赚分阿,给我带来了不少收入,给你源代码,自己研究一下。
package mshtang.html;
/**
 * 

Title: DataBaseQuery


 * 

Description: 用于数据库翻页查询操作


 * 

Copyright: 厦门一方软件公司版权所有Copyright (c) 2002


 * 

Company: 厦门一方软件公司


 * @author 小唐蔡
 * @version 1.0
 */
import java.sql.*;
import javax.servlet.http.*;
import java.util.*;
import mshtang.StringAction;
public class DataBaseQuery
{

  private HttpServletRequest request;
  private StringAction S;
  private String sql;
  private String userPara;
  private String[][] resultArray;
  private String[] columnNameArray;
  private String[] columnTypeArray;
  private int pageSize;
  private int columnCount;
  private int currentPageNum;
  private int currentPageRecordNum;
  private int totalPages;
  private int pageStartRecord;
  private int totalRecord;
  private static boolean initSuccessful;
  private String currentJSPPageName;
  private String displayMessage;

  public DataBaseQuery()
  {
    S = new StringAction();
    sql = "";
    pageSize = 10;
    totalRecord = 0;
    initSuccessful = false;
    currentJSPPageName = "";
    displayMessage = "";
    columnNameArray = null;
    columnTypeArray = null;
    currentPageRecordNum = 0;
    columnCount = 0;
  }

  /**功能:数据库初始化操作,其它操作的前提。
   *
   * @param conn:数据库连接;
   * @param request:jsp页面request对象;
   * @param querySQL:查询语句;
   * @param pageSize:每页显示记录数;
   * @param startPageNum:开始显示页码
   */
  public void init(Connection conn, HttpServletRequest request, String querySQL, int pageSize, int startPageNum)
  {
    if(conn != null)
    {
      this.request = request;
      this.sql = request.getParameter("querySQL");
      this.userPara = request.getParameter("userPara");
      if(sql == null || sql.equals(""))
      {
        sql = querySQL;
      }
      if(this.userPara == null)
      {
        this.userPara = "";
      }
      if(S.isContains(sql, "select;from", ";", true))
      {
        try
        {
          Statement st = conn.createStatement();
          ResultSet rs = st.executeQuery(sql);
          ResultSetMetaData rsmd = rs.getMetaData();
          columnCount = rsmd.getColumnCount();
          columnNameArray = new String[columnCount];
          columnTypeArray = new String[columnCount];
          String columnName;
          String value;
          while(rs != null && rs.next())
          {
            totalRecord++;
            if(totalRecord == 1)
            {
              for(int i = 0; i  0 && pageSize > 0 && columnCount > 0 && startPageNum > 0)
          {
            //获取总页数
            totalPages = totalRecord / pageSize;
            int tempNum = totalRecord % pageSize;
            if(tempNum != 0)
            {
              totalPages++;
            }

            //获得当前页页码
            String currentPage = request.getParameter("currentPageNum");
            currentPageNum = (currentPage == null || currentPage.equals(""))? startPageNum:Integer.parseInt(currentPage);
            currentPageNum = (currentPageNum > totalPages)?totalPages:currentPageNum;
            currentPageNum = (currentPageNum  totalRecord)
            {
              currentPageRecordNum = totalRecord - (currentPageNum - 1) * pageSize;
            }
            else
            {
              currentPageRecordNum = pageSize;
            }
            resultArray = new String[currentPageRecordNum][columnCount];

            //用于跳过前面不需显示的记录
            int continueRowNum = 0;

            //用于跳过后面不再显示的记录
            int breakRowNum = 0;

            ResultSet rs2 = st.executeQuery(sql);
            while(rs2 != null && rs2.next())
            {
              //跳过前面不需显示的记录
              continueRowNum++;
              if(continueRowNum 

    
 
 

您可能感兴趣的文章:

  • 请问用 ls 命令时,怎样将显示的结果以页为单位进行显示
  • 请问在REDHAT7.3中如何设置显示器的刷新率。如何更改显示器类型。谢谢
  • 请问为什么我在linux 9.0下打开.pdf,和.ppt显示不了中文,但是网页的中文内容能显示
  • 请问:Linux不能显示U盘中中文文件名,但能显示中文的内容?怎么解决?
  • 请问java applet里,怎么能只显示图像的一部分,比如只显示图片的中间一块?
  • 请问“终端”和“显示器”这两个概念上有什么区别?
  • 请问怎么用JEditorPane控件,来显示本地的html文件。
  • 请问什么版本的Linux能支持液晶显示器
  • 请问Linux显示当前版本的命令是什么?谢谢
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用 iis7站长之家
  • 请问applet显示乱码的问题
  • 请问如何在页面显示 .swf图片文件,谢谢!
  • 请问在linux调试中能否有调用函数的显示时间
  • 请问在Jbuilder 7中, 做swing界面, 用JDK1.4,怎么解决中文显示问题?
  • 请问苹果机上的中文显示问题
  • 请问在linux下如何快速显示桌面和锁住屏幕?
  • 请问用什么函数显示日期和时间?
  • 请问一个图像显示的问题
  • 请问如何调整显示器刷新率?
  • 请问,使用GTK如何显示标准的浏览文件夹的对话框?HILDON提供吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!
  • 请问出现fstab文件丢失该怎么修复呀?
  • 请问这个方法如何调用?
  • 请问一个奇怪的问题!
  • 请问在网页中打开的新窗口,如何让其居中。
  • 请问我该学什么了
  • 请问安装zhcon,cxterm问题
  • 非常急! 请问daemontools 在red hat 9下的安装问题? 在线等待


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,