jsp的分页查询的代码(mysql数据库)

原创 2007年11月25日 11:29:00

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

//下面是连接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数据库的分页显示查询的代码

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();
       this.stmt=this.conn.createStatement();
       this.rs=this.stmt.executeQuery(this.sqlStr);
       this.rsmd=this.rs.getMetaData();
       if(this.rs!=null)
       {
          this.rs.last();
       this.rowCount=this.rs.getRow();
       this.rs.first();
       this.columnCount=this.rsmd.getColumnCount();
       this.pageCount=(this.rowCount-1)/this.pageSize+1;
       this.rs.close();
       this.stmt.close();
       }
       this.sqlStr=this.sqlStr+" limit "+this.irows+","+this.pageSize;
       this.stmt=this.conn.createStatement();
       this.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>条&nbsp;<%=pageSize%>条/页&nbsp;&nbsp;第<font color=red><%=showPage%></font>页/共<font color=red><%=pages.getPageCount()%></font>页&nbsp;&nbsp;[<a href="word_list_javabean.jsp?showPage=1" target="_self">首页</a>]&nbsp;
       <%
       //判断“上一页”链接是否要显示
    if(showPage>1){
    %>
       [<a href="word_list_javabean.jsp?showPage=<%=showPage-1%>" target="_self">上一页</a>]&nbsp;
    <%
       }
       else{   
    %>
            [上一页]&nbsp;
  <%
         }
      //判断“下一页”链接是否显示
      if(showPage<pages.getPageCount())
      {
  %>   
    [<a href="word_list_javabean.jsp?showPage=<%=showPage+1%>" target="_self">下一页</a>]&nbsp;
    <%
       }
       else{   
    %>
            [下一页]&nbsp;
  <%
     }
  %>   
 
    [<a href="word_list_javabean.jsp?showPage=<%=pages.getPageCount()%>" target="_self">尾页</a>]&nbsp;转到
        <select name="select">
  <%
       for(int x=1;x<=pages.getPageCount();x++)
    {
  %>
            <option value="<%=x%>"
      <%
          if(showPage==x){
           out.println("selected");
        }  
      %> ><%=x%></option>
  <%
       }
  %>   
        </select>
        页&nbsp;&nbsp;&nbsp;
        <input type="submit" name="go" value="提交" />
    </p>
  </form>
    </p>
    </div>
</body>
</html>
 

jsp+MYSQL编写的按条件查询代码

  • 2010年05月22日 10:39
  • 2KB
  • 下载

如何在jsp上查询并显示数据库mysql的数据表格

需要在jsp上实现查询数据库的表格(就是通过用户输入查询表格) 总体的思路: 1.首先用户在jsp中输入需要查询的对象并跳转Servlet。 2.Servlet在后台接收到数据。 3.Servl...
  • qq_39654446
  • qq_39654446
  • 2017年08月26日 11:27
  • 2469

MySQL数据库+jsp+servlet实现分页查询

前一段做的那个jsp+servlet的小项目用到了分页查询,老师讲了之后实现到了网页上面,今天总结到博客上面,以后忘记了自己可以看,也分享给大家.    这个项目使用的数据库是MySQL,在MySQL...
  • zc1994113
  • zc1994113
  • 2015年12月23日 22:03
  • 5639

JSP实现HTML网页中分页查询Mysql数据库数据

JSP实现HTML网页中分页查询Mysql数据库数据主要有以下几个地方要注意: 使用rs的来计算页面数: rs.last(); RowAmount = rs.getRow(); ...
  • u013816144
  • u013816144
  • 2015年12月29日 01:35
  • 3071

MVC分层+JDBC+数据库+Servlet实现JSP文件上传和显示+模糊查询+分页

MVC分层+JDBC+数据库+Servlet实现JSP文件上传+模糊查询+分页
  • qq417187792
  • qq417187792
  • 2015年06月16日 18:49
  • 2127

JSP连接mysql数据库分页查询

谈下实现方法吧,说是JSP连接mysql,其实是在JSP中利用来直接写java代码通过JDBC连接mysql。JDBC连接各种数据库的方式就不做过多的介绍了,相信网上一搜一大堆的。 分页查询一般有两...
  • vison155142
  • vison155142
  • 2015年06月01日 20:01
  • 559

Mysql数据库分页查询练习

  • 2016年06月14日 15:52
  • 1.31MB
  • 下载

使用JDBC连接MySQL数据库--典型案例分析(八)----实现员工数据的分页查询

转载请注明:http://blog.csdn.net/uniquewonderq 问题: 使用JDBC连接Mysql数据库,实现对Emp表数据的分页查询功能。 方案: 对于较大的数据量...
  • uniquewonderq
  • uniquewonderq
  • 2015年06月16日 19:20
  • 1351

Oracle、Mysql数据库分页查询归纳

Oracle 分页查询Oracle分页需要用到rownum伪类,和rowid记录物理地址不同,他会根据返回的记录生成一个序列化数字,利用rownum可以实现一些原先难以实现的结果输出 1. 取出...
  • bestfeng1020
  • bestfeng1020
  • 2017年01月13日 10:09
  • 178

vc 使用odbc连接mysql数据库分页查询

首先获取记录总数 long nCount = 0;   try   {     if(m_pDatabase && m_pDatabase->IsOpen())     {   ...
  • qdqht2009
  • qdqht2009
  • 2015年10月20日 14:57
  • 410
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jsp的分页查询的代码(mysql数据库)
举报原因:
原因补充:

(最多只允许输入30个字)