jsp mysql分页_jsp + mysql 的分页程序

Connection sqlCon; //数据库连接对象

Statement sqlStmt; //SQL语句对象

ResultSet sqlRst; //结果集对象

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

String strSQL; //SQL语句

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

int intRowCount; //记录总数

int intPageCount; //总页数

int intPage; //待显示页码

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驱动程序

//驱动程序名

String driverName="com.mysql.jdbc.Driver";

//数据库用户名

String userName="test";

//密码

String userPasswd="123456";

//数据库名

String dbName="shujuku";

//表名

String tableName="biao";

//联结字符串

String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;

Class.forName("com.mysql.jdbc.Driver").newInstance();

sqlCon=DriverManager.getConnection(url);

//创建语句对象

sqlStmt = sqlCon.createStatement(); //执行SQL语句

strSQL = "select name from " + tableName;

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

sqlRst = sqlStmt.executeQuery(strSQL);

//获取记录总数

sqlRst.last();

intRowCount = sqlRst.getRow();

//记算总页数

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

//调整待显示的页码

if(intPage>intPageCount) intPage = intPageCount;

%>

JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - mysql
姓名

0)

{

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

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

//显示数据

i = 0;

while(i

i++;

}

}

%>

第页 共页

下一页

1){%>上一页

//关闭结果集

sqlRst.close();

//关闭SQL语句对象

sqlStmt.close();

//关闭数据库

sqlCon.close();

%>

posted on 2006-10-08 15:22 xzc0202 阅读(118) 评论(0)  编辑  收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用法:不用写连接数据库等多余代码(在ConnLink.java文件中修改一下相关属性就可以了,如果不想写分页,在ConnLink.java文件中DBlink()方法可以返回一个Statement对象,然后就可以利用这个返回值去写你想要的代码了),只要建立一个Page对象,调用SelectRS()方法,将SQL语句当前页码和每页要显示的条数正确的写入。SelectRS()会自动返回一个结果集rs,然后用rs遍历输出结果。用getFrist()、getBack()、getLast()、getNext()等方法进行取得上一页的页码,下一面的页码就可以了。 看了之后是不是很心动呢~~~ HOHO~~其实我的代码有很多不足,例如:是不是可以做成通用的分页?也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段代码更精一些。HOHO~~~~改完之的一定要发到网上供大家参考和使用。 刚刚才发现Page.java文件是空的,在这里我就加上吧!实在是不好意思了 package com.SpreadPage; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.DateBase.*; public class Page extends ConnLink{ private Statement stmt=null; private ResultSet rs=null; private int row=0; private int num=0; private int page=0; private int list=0; //搜索去向 搜索条件 当前第几页 每页条数 public ResultSet SelectRS(String select,int page_num,int page) { this.num=page_num; this.page=page; String sql=select+" limit "+(page_num*page)+","+(page_num*page+page); //System.out.println(sql); try { stmt=DBlink(); rs=stmt.executeQuery(select); rs.first(); rs.last(); this.row=rs.getRow(); System.out.println(sql); if(rs!=null) { rs.close(); } if(stmt==null) { System.out.println("Stmt无连接"); return null; } rs=stmt.executeQuery(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; } //获得总记录数 public int getRow() { return row; } //第一页 public int getFrist() { return 0; } //最后一页 public int getBack() { if(getRow()%page==0) { return getRow()/page; } return (getRow()/page)+1; } //上一页 public int getLast() { if(num<=0) { return 0; } return (num-1); } //下一页 public int getNext() { int back=getBack(); if(num>=back) { return num; } return (num+1); } //当前页的条数 public int getNow() { try { rs.first(); rs.last(); list=rs.getRow(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } //当前第几页 public int getPage() { int sum=(num*page-page)+1; if(getRow()<sum) return 0; return sum; } }
实现JSPMySQL分页的步骤如下: 1.在JSP页面中定义一个分页函数,用于计算总记录数、总页数、当前页等信息。 ```jsp <% // 获取当前页码 int currentPage = request.getParameter("currentPage") == null ? 1 : Integer.parseInt(request.getParameter("currentPage")); // 定义每页显示的记录数 int pageSize = 10; // 定义总记录数 int totalCount = 0; // 定义总页数 int totalPage = 0; // 查询总记录数 String sqlCount = "select count(*) from table_name"; ResultSet rsCount = stmt.executeQuery(sqlCount); if (rsCount.next()) { totalCount = rsCount.getInt(1); } rsCount.close(); // 计算总页数 totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1; // 判断当前页是否越界 if (currentPage < 1) { currentPage = 1; } else if (currentPage > totalPage) { currentPage = totalPage; } // 计算起始记录的索引值 int startIndex = (currentPage - 1) * pageSize; // 查询当前页的数据 String sqlData = "select * from table_name limit " + startIndex + "," + pageSize; ResultSet rsData = stmt.executeQuery(sqlData); while (rsData.next()) { // 显示数据 } rsData.close(); %> ``` 2.在JSP页面中显示分页导航条,用于用户选择不同的页码。 ```jsp <% // 显示分页导航条 for (int i = 1; i <= totalPage; i++) { if (i == currentPage) { out.println("<span>" + i + "</span>"); } else { out.println("<a href=\"?currentPage=" + i + "\">" + i + "</a>"); } } %> ``` 以上就是JSPMySQL分页的基本实现方法。需要注意的是,这里的代码仅供参考,具体实现需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值