转载

MySQL数据库下的JSP分页查询模块源码

对于JSP的学习者MySQL并不陌生,那么如何JSP分页查询模块的实现呢,让我们开始吧!

这个功能一共创建了两个JavaBean组件和一个JSP页面显示分页页面,第一个是处理以数据库连接的JavaBean,第一个JavaBean是处理JSP分页查询结果的代码,第三个JSP是调用第二个JavaBean,显示JSP分页查询的结果!

◆下面是连接MYSQL数据库的一个JavaBean的代码

  1. package data;  
  2. import java.sql.*;  
  3.  
  4. public class LoginData{  
  5.     Connection conn=null;   
  6.     public LoginData(){  
  7.               this.connect();      
  8.     }  
  9.      
  10.     public Connection getConn(){  
  11.             return this.conn;  
  12.     }  
  13.     public boolean connect(){  
  14.            try{  
  15.           //使用JDBC桥创建数据库连接  
  16.        Class.forName("org.gjt.mm.MYSQL.Driver").newInstance();  
  17.           
  18.      //使用DriverManager类的getConnection()方法建立连接  
  19.      //第一个参数定义用户名,第二个参数定义密码  
  20.      this.conn=java.sql.DriverManager.getConnection("
    jdbc:MYSQL://localhost:3306/logindemo?
    useUnicode=true&characterEncoding=gb2312",
    "root","
    123456");  
  21.       }catch(Exception ex){  
  22.            ex.printStackTrace();   
  23.      return false;  
  24.       }  
  25.       return true;  
  26.     }  
  27. }    
  28.  

◆下面是一个JavaBean的处理MySQL数据库的JSP分页查询显示的代码

  1. package data;  
  2. import java.sql.*;  
  3. import java.util.*;  
  4. public class strongSplitPage  
  5. {  
  6.        private Connection conn=null;  
  7.     private Statement stmt=null;  
  8.     private ResultSet rs=null;  
  9.     private ResultSetMetaData rsmd=null;  
  10.     //sql 查询语句  
  11.     private String sqlStr;  
  12.     //总纪录数目  
  13.     private int rowCount;  
  14.     //所分得逻辑页数  
  15.     private int pageCount;  
  16.     //每页显示的纪录数目  
  17.     private int pageSize;  
  18.     //定义表的列数目  
  19.     private int columnCount;  
  20.     private int irows;  
  21.     public void initialize(String sqlStr,int pageSize,int showPage)  
  22.     {  
  23.             this.sqlStr=sqlStr;  
  24.       this.irows=pageSize*(showPage-1);  
  25.       this.pageSize=pageSize;  
  26.       try  
  27.       {  
  28.           LoginData loginData=new data.LoginData();  
  29.           this.conn=loginData.getConn();  
  30.        thisthis.stmt=this.conn.createStatement();  
  31.        thisthis.rs=this.stmt.executeQuery(this.sqlStr);  
  32.        thisthis.rsmd=this.rs.getMetaData();  
  33.        if(this.rs!=null)  
  34.        {  
  35.           this.rs.last();  
  36.        thisthis.rowCount=this.rs.getRow();  
  37.        this.rs.first();  
  38.        thisthis.columnCount=this.rsmd.getColumnCount();  
  39.        this.pageCount=(this.rowCount-1)/this.pageSize+1;  
  40.        this.rs.close();  
  41.        this.stmt.close();  
  42.        }  
  43.        thisthis.sqlStr=this.sqlStr+" limit "+this.irows+","+this.pageSize;  
  44.        thisthis.stmt=this.conn.createStatement();   
  45.        thisthis.rs=this.stmt.executeQuery(this.sqlStr);     
  46.        }catch(Exception ex)  
  47.     {  
  48.               ex.printStackTrace();  
  49.         }  
  50.     }  
  51.     public Vector getPage()  
  52.     {  
  53.            Vector vData=new Vector();  
  54.      try  
  55.      {  
  56.          if(this.rs!=null)  
  57.       {  
  58.               
  59.          while(this.rs.next())  
  60.       {       
  61.              String[] sData=new String[this.columnCount];  
  62.           for(int j=0;jthis.columnCount;j++)  
  63.        {  
  64.                sData[j]=this.rs.getString(j+1);  
  65.           }  
  66.           vData.addElement(sData);  
  67.         }  
  68.         this.rs.close();  
  69.         this.stmt.close();  
  70.         this.conn.close();  
  71.        }  
  72.       }catch(Exception ex)  
  73.       {  
  74.           ex.printStackTrace();  
  75.       }  
  76.             return vData;  
  77.   }  
  78.          
  79.      //获得页面总数  
  80.      public int getPageCount()  
  81.      {  
  82.              return this.pageCount;  
  83.      }  
  84.      //获得数据表中总纪录数  
  85.      public int getRowCount()  
  86.      {  
  87.              return this.rowCount;  
  88.      }  
  89. }  
  90.  

◆下面是显示JSP分页查询页面

  1. %@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %  
  2. %@ page import="java.io.*" %  
  3. %@ page import="java.util.*" %  
  4. %@ page import="data.*"%  
  5. jsp:useBean id="pages" scope="page" class="data.strongSplitPage" /  
  6. !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"  
  7. %!  
  8.       //显示每页的纪录数  
  9.    int pageSize=10;  
  10.    String sqlStr="";  
  11.    //当前页  
  12.    int showPage=1;  
  13. %  
  14.  
  15. %  
  16.       sqlStr="select * from userinfo order by id ";  
  17.    String strPage=null;  
  18.    //获得跳转到的页面    
  19.    strPage=request.getParameter("showPage");       
  20.    if(strPage==null){  
  21.       showPage=1;  
  22.    pages.initialize(sqlStr,pageSize,showPage);  
  23.    }else{  
  24.          try{  
  25.          showPage=Integer.parseInt(strPage);   
  26.       pages.initialize(sqlStr,pageSize,showPage);  
  27.    }catch(NumberFormatException ex){  
  28.           showPage=1;  
  29.         pages.initialize(sqlStr,pageSize,showPage);  
  30.    }  
  31.    if(showPage1){  
  32.           showPage=1;  
  33.         pages.initialize(sqlStr,pageSize,showPage);  
  34.    }  
  35.    if(showPagepages.getPageCount()){  
  36.            showPage=pages.getPageCount();  
  37.       pages.initialize(sqlStr,pageSize,showPage);  
  38.    }  
  39.    }  
  40.    //取得要显示的数据集合  
  41.    Vector vData=pages.getPage();     
  42. %  
  43. html xmlns="http://www.w3.org/1999/xhtml"  
  44. head  
  45. meta http-equiv="Content-Type" content="text/html; charset=gb2312" /  
  46. title分页显示/title  
  47. /head  
  48.  
  49. body bgcolor="#ffffff" text="#000000"  
  50.        h1 align=center个人基本信息/h1  
  51. div align=center  
  52.     table border="1" cellspacing="0" cellpadding="0" width="80%"  
  53.     tr  
  54.          th width="20%"编号/th  
  55.    th width="40%"学号/th  
  56.    th width="40%"姓名/th  
  57.     /tr  
  58.     %  
  59.           for(int i=0;ivData.size();i++)  
  60.     {  
  61.           //显示数据数  
  62.        String[] sData=(String[])vData.get(i);  
  63.     %  
  64.                  tr  
  65.            td%=sData[0]%/td  
  66.         td%=sData[1]%/td  
  67.         td%=sData[2]%/td  
  68.      /tr  
  69.   %  
  70.        }  
  71.   %         
  72.     /table  
  73.     p  
  74.   form action="word_list_javabean.jsp" method="get" target="_self"  
  75.       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]   
  76.        %  
  77.        //判断“上一页”链接是否要显示  
  78.     if(showPage1){  
  79.     %  
  80.        [a href="word_list_javabean.jsp?showPage=%=showPage-1%" target="_self"上一页/a]   
  81.     %  
  82.        }   
  83.        else{      
  84.     %  
  85.             [上一页]   
  86.   %  
  87.          }  
  88.       //判断“下一页”链接是否显示  
  89.       if(showPagepages.getPageCount())  
  90.       {   
  91.   %      
  92.     [a href="word_list_javabean.jsp?showPage=%=showPage+1%" target="_self"下一页/a]   
  93.     %  
  94.        }   
  95.        else{      
  96.     %  
  97.             [下一页]   
  98.   %  
  99.      }  
  100.   %      
  101.    
  102.     [a href="word_list_javabean.jsp?showPage=%=pages.getPageCount()%" target="_self"尾页/a] 转到  
  103.         select name="select"  
  104.   %  
  105.        for(int x=1;x=pages.getPageCount();x++)  
  106.     {   
  107.   %  
  108.             option value="%=x%" 
  109.       %  
  110.           if(showPage==x){  
  111.            out.println("selected");  
  112.         }     
  113.       % %=x%/option  
  114.   %  
  115.        }  
  116.   %      
  117.         /select  
  118.         页     
  119.         input type="submit" name="go" value="提交" /  
  120.     /p  
  121.   /form  
  122.     /p  
  123.     /div  
  124. /body  
  125. /html  
  126.  

以上就是在MYSQL数据库下的JSP分页查询的实现,希望对你有所帮助!

正文到此结束
Loading...