JAVA/JSP学习系列之六(MySQL翻页例子)

  • 来源: 互联网 作者: rocket   2008-03-17/11:36
  • 一、运行前准备

    下载了
    mysql的jdbc驱动(一个jar文件)并加载在CLASSPATH(方法见《JAVA/JSP学习系列之一(JDK安装) 》)

    (如果找不到,请从本站下载)

    建一个MySQL
    数据库test

    数据库中有一个表:note,字段为:name(varchar)

    二、下载,安装

    <%@ page contentType="text/html;charset=gb2312" %>

    <% java.sql.Connection sqlCon; //数据库连接对象

    java.sql.Statement sqlStmt; //SQL语句对象

    java.sql.ResultSet sqlRst; //结果集对象

    java.lang.String strCon; //数据库连接字符串

    java.lang.String strSQL; //SQL语句

    int intPageSize; //一页显示的记录数

    int intRowCount; //记录总数

    int intPageCount; //总页数

    int intPage; //待显示页码

    java.lang.String strPage;

    int i;

    //设置一页显示的记录数

    intPageSize = 2;

    //取得待显示页码

    strPage = request.getParameter("page");

    if(strPage==null){

    //表明在QueryString中没有page这一个参数,此时显示第一页数据

    intPage = 1;

    } else{

    //将字符串转换成整型

    intPage = java.lang.Integer.parseInt(strPage);

    if(intPage<1) intPage = 1;

    }

    //装载JDBC驱动程序

    Class.forName("org.gjt.mm.mysql.Driver").newInstance();

    //连接数据库

    sqlCon= java.sql.DriverManager.getConnection("jdbc:mysql://localhost/test");

    //创建语句对象

    sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //执行SQL语句

    strSQL = "select name from note";

    //执行SQL语句并获取结果集

    sqlRst = sqlStmt.executeQuery(strSQL);

    //获取记录总数

    sqlRst.last();

    intRowCount = sqlRst.getRow();

    //记算总页数

    intPageCount = (intRowCount+intPageSize-1) / intPageSize;

    //调整待显示的页码

    if(intPage>intPageCount) intPage = intPageCount;

    %>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    <title>JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - mysql</title>

    </head>

    <body>

    <table border="1" cellspacing="0" cellpadding="0">

    <tr>

    <th>姓名</th>

    </tr>

    <% if(intPageCount>0)

    {

    //将记录指针定位到待显示页的第一条记录上

    sqlRst.absolute((intPage-1) * intPageSize + 1);

    //显示数据

    i = 0;

    while(i<intPageSize && !sqlRst.isAfterLast()){ %>

    <tr>

    <td>

    <%=sqlRst.getString(1)%>

    </td>

    </tr>

    <% sqlRst.next();

    i++;

    }

    }

    %>

    </table>

    第<%=intPage%>页  共<%=intPageCount%>页  

    <%if(intPage<intPageCount){%><a href="mysqlpage.jsp?page=<%=intPage+1%>">下一页</a><%}%>

      <%if(intPage>1){%><a href="mysqlpage.jsp?page=<%=intPage-1%>">上一页</a><%}%>

    </body>

    </html>

    <%

    //关闭结果集

    sqlRst.close();

    //关闭SQL语句对象

    sqlStmt.close();

    //关闭数据库

    sqlCon.close();

    %>

    三、怎么去运行?

    见前文《JAVA/JSP学习系列之五(JDBC-ODBC翻页例子)》。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多