• 一个测试


    MySQL数据库下的JSP分页查询模块源码
    2009-07-01 10:01 佚名 CSDN博客 字号:T | T
    
    本文将向你简单介绍JSP分页查询模块的实现,对于JSP的学习者MySQL数据库并不陌生,那么本文将展示在MYSQL下的JSP分页查询模块的实现。
    AD:2013云计算架构师峰会课程资料下载
    对于JSP的学习者MySQL并不陌生,那么如何JSP分页查询模块的实现呢,让我们开始吧!
    
    这个功能一共创建了两个JavaBean组件和一个JSP页面显示分页页面,第一个是处理以数据库连接的JavaBean,第一个JavaBean是处理JSP分页查询结果的代码,第三个JSP是调用第二个JavaBean,显示JSP分页查询的结果!
    
    ◆下面是连接MYSQL数据库的一个JavaBean的代码:
    
    package data;  
    import java.sql.*;  
     
    public class LoginData{  
        Connection conn=null;   
        public LoginData(){  
                  this.connect();      
        }  
         
        public Connection getConn(){  
                return this.conn;  
        }  
        public boolean connect(){  
               try{  
              //使用JDBC桥创建数据库连接  
           Class.forName("org.gjt.mm.MYSQL.Driver").newInstance();  
              
         //使用DriverManager类的getConnection()方法建立连接  
         //第一个参数定义用户名,第二个参数定义密码  
         this.conn=java.sql.DriverManager.getConnection("
    jdbc:MYSQL://localhost:3306/logindemo?useUnicode=true&characterEncoding=gb2312",
    "root","123456");  
          }catch(Exception ex){  
               ex.printStackTrace();   
         return false;  
          }  
          return true;  
        }  
    }    
     
    ◆下面是一个JavaBean的处理MySQL数据库的JSP分页查询显示的代码
    
    package data;  
    import java.sql.*;  
    import java.util.*;  
    public class strongSplitPage  
    {  
           private Connection conn=null;  
        private Statement stmt=null;  
        private ResultSet rs=null;  
        private ResultSetMetaData rsmd=null;  
        //sql 查询语句  
        private String sqlStr;  
        //总纪录数目  
        private int rowCount;  
        //所分得逻辑页数  
        private int pageCount;  
        //每页显示的纪录数目  
        private int pageSize;  
        //定义表的列数目  
        private int columnCount;  
        private int irows;  
        public void initialize(String sqlStr,int pageSize,int showPage)  
        {  
                this.sqlStr=sqlStr;  
          this.irows=pageSize*(showPage-1);  
          this.pageSize=pageSize;  
          try  
          {  
              LoginData loginData=new data.LoginData();  
              this.conn=loginData.getConn();  
           thisthis.stmt=this.conn.createStatement();  
           thisthis.rs=this.stmt.executeQuery(this.sqlStr);  
           thisthis.rsmd=this.rs.getMetaData();  
           if(this.rs!=null)  
           {  
              this.rs.last();  
           thisthis.rowCount=this.rs.getRow();  
           this.rs.first();  
           thisthis.columnCount=this.rsmd.getColumnCount();  
           this.pageCount=(this.rowCount-1)/this.pageSize+1;  
           this.rs.close();  
           this.stmt.close();  
           }  
           thisthis.sqlStr=this.sqlStr+" limit "+this.irows+","+this.pageSize;  
           thisthis.stmt=this.conn.createStatement();   
           thisthis.rs=this.stmt.executeQuery(this.sqlStr);     
           }catch(Exception ex)  
        {  
                  ex.printStackTrace();  
            }  
        }  
        public Vector getPage()  
        {  
               Vector vData=new Vector();  
         try  
         {  
             if(this.rs!=null)  
          {  
                  
             while(this.rs.next())  
          {       
                 String[] sData=new String[this.columnCount];  
              for(int j=0;j﹤this.columnCount;j++)  
           {  
                   sData[j]=this.rs.getString(j+1);  
              }  
              vData.addElement(sData);  
            }  
            this.rs.close();  
            this.stmt.close();  
            this.conn.close();  
           }  
          }catch(Exception ex)  
          {  
              ex.printStackTrace();  
          }  
                return vData;  
      }  
             
         //获得页面总数  
         public int getPageCount()  
         {  
                 return this.pageCount;  
         }  
         //获得数据表中总纪录数  
         public int getRowCount()  
         {  
                 return this.rowCount;  
         }  
    }  
     
    ◆下面是显示JSP分页查询页面
    
    ﹤%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %﹥  
    ﹤%@ page import="java.io.*" %﹥  
    ﹤%@ page import="java.util.*" %﹥  
    ﹤%@ page import="data.*"%﹥  
    ﹤jsp:useBean id="pages" scope="page" class="data.strongSplitPage" /﹥  
    ﹤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"﹥  
    ﹤%!  
          //显示每页的纪录数  
       int pageSize=10;  
       String sqlStr="";  
       //当前页  
       int showPage=1;  
    %﹥  
     
    ﹤%  
          sqlStr="select * from userinfo order by id ";  
       String strPage=null;  
       //获得跳转到的页面    
       strPage=request.getParameter("showPage");       
       if(strPage==null){  
          showPage=1;  
       pages.initialize(sqlStr,pageSize,showPage);  
       }else{  
             try{  
             showPage=Integer.parseInt(strPage);   
          pages.initialize(sqlStr,pageSize,showPage);  
       }catch(NumberFormatException ex){  
              showPage=1;  
            pages.initialize(sqlStr,pageSize,showPage);  
       }  
       if(showPage﹤1){  
              showPage=1;  
            pages.initialize(sqlStr,pageSize,showPage);  
       }  
       if(showPage﹥pages.getPageCount()){  
               showPage=pages.getPageCount();  
          pages.initialize(sqlStr,pageSize,showPage);  
       }  
       }  
       //取得要显示的数据集合  
       Vector vData=pages.getPage();     
    %﹥  
    ﹤html xmlns="http://www.w3.org/1999/xhtml"﹥  
    ﹤head﹥  
    ﹤meta http-equiv="Content-Type" content="text/html; charset=gb2312" /﹥  
    ﹤title﹥分页显示﹤/title﹥  
    ﹤/head﹥  
     
    ﹤body bgcolor="#ffffff" text="#000000"﹥  
           ﹤h1 align=center﹥个人基本信息﹤/h1﹥  
    ﹤div align=center﹥  
        ﹤table border="1" cellspacing="0" cellpadding="0" width="80%"﹥  
        ﹤tr﹥  
             ﹤th width="20%"﹥编号﹤/th﹥  
       ﹤th width="40%"﹥学号﹤/th﹥  
       ﹤th width="40%"﹥姓名﹤/th﹥  
        ﹤/tr﹥  
        ﹤%  
              for(int i=0;i﹤vData.size();i++)  
        {  
              //显示数据数  
           String[] sData=(String[])vData.get(i);  
        %﹥  
                     ﹤tr﹥  
               ﹤td﹥﹤%=sData[0]%﹥﹤/td﹥  
            ﹤td﹥﹤%=sData[1]%﹥﹤/td﹥  
            ﹤td﹥﹤%=sData[2]%﹥﹤/td﹥  
         ﹤/tr﹥  
      ﹤%  
           }  
      %﹥         
        ﹤/table﹥  
        ﹤p﹥  
      ﹤form action="word_list_javabean.jsp" method="get" target="_self"﹥  
          ﹤p﹥共﹤font color=red﹥﹤%=pages.getRowCount()%﹥﹤/font﹥条 ﹤%=pageSize%﹥条/页  第﹤font color=red﹥﹤%=showPage%﹥﹤/font﹥页/共﹤font color=red﹥﹤%=pages.getPageCount()%﹥﹤/font﹥页  [﹤a href="word_list_javabean.jsp?showPage=1" target="_self"﹥首页﹤/a﹥]   
           ﹤%  
           //判断“上一页”链接是否要显示  
        if(showPage﹥1){  
        %﹥  
           [﹤a href="word_list_javabean.jsp?showPage=﹤%=showPage-1%﹥" target="_self"﹥上一页﹤/a﹥]   
        ﹤%  
           }   
           else{      
        %﹥  
                [上一页]   
      ﹤%  
             }  
          //判断“下一页”链接是否显示  
          if(showPage﹤pages.getPageCount())  
          {   
      %﹥      
        [﹤a href="word_list_javabean.jsp?showPage=﹤%=showPage+1%﹥" target="_self"﹥下一页﹤/a﹥]   
        ﹤%  
           }   
           else{      
        %﹥  
                [下一页]   
      ﹤%  
         }  
      %﹥      
       
        [﹤a href="word_list_javabean.jsp?showPage=﹤%=pages.getPageCount()%﹥" target="_self"﹥尾页﹤/a﹥] 转到  
            ﹤select name="select"﹥  
      ﹤%  
           for(int x=1;x﹤=pages.getPageCount();x++)  
        {   
      %﹥  
                ﹤option value="﹤%=x%﹥"%  
              if(showPage==x){  
               out.println("selected");  
            }     
          %﹥ ﹥﹤%=x%﹥﹤/option﹥  
      ﹤%  
           }  
      %﹥      
            ﹤/select﹥  
            页     
            ﹤input type="submit" name="go" value="提交" /﹥  
        ﹤/p﹥  
      ﹤/form﹥  
        ﹤/p﹥  
        ﹤/div﹥  
    ﹤/body﹥  
    ﹤/html﹥  
     
  • 相关阅读:
    微信小程序之----加载中提示框loading
    微信小程序之----消息提示框toast
    微信小程序之----弹框组件modal
    浅析浏览器的回流与重绘 (Reflow & Repaint)
    关于input的一些问题解决方法分享
    关于js中 toFixed()的一个小坑
    浅谈js中null和undefined的区别
    浅谈JS中的闭包
    浅谈JS中的浅拷贝与深拷贝
    css设置居中的方案总结
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3599626.html
Copyright © 2020-2023  润新知