showpage.java代码_ShowRecordByPage.java

本文介绍了一种使用Java进行数据库分页查询的方法。通过自定义类`ShowRecordByPage`,实现了从MySQL数据库中按指定页面大小和当前页数获取数据的功能。该类通过`CachedRowSetImpl`缓存结果集,支持动态获取数据库表结构,并能够根据需求调整每页显示的记录数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.srj.text; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import com.sun.rowset.CachedRowSetImpl; public class ShowRecordByPage { int pageSize=10; //每页显示的记录数 int pageAllCount=0; //分页后的总页数 int showPage=1; //当前显示页 StringBuffer presentPageResult;  //显示当前页内容 CachedRowSetImpl rowSet; //用于存储ResultSet对象 String databaseName=""; //数据库 String tableName=""; //表的名字 String user=""; //用户 String password=""; //密码 String field[]=new String[100]; //存储表中的属性名 int fieldNum=0; //字段(属性)个数 public ShowRecordByPage() { presentPageResult=new StringBuffer(); try { Class.forName("com.mysql.jdbc.Driver"); } catch (Exception e) { e.printStackTrace(); } } public void setPageSize(int size){ pageSize=size; fieldNum=0; String uri="jdbc:mysql://localhost/"+databaseName; try { Connection con=DriverManager.getConnection(uri, user, password); DatabaseMetaData metaData=con.getMetaData(); ResultSet rs1=metaData.getColumns(null, null, tableName, null); int k=0; while(rs1.next()){ fieldNum++; field[k]=rs1.getString(4);    //获取字段名称 k++; } Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=sql.executeQuery("select * from "+tableName); rowSet=new CachedRowSetImpl();   //创建行集对象 rowSet.populate(rs); con.close(); //关闭连接 rowSet.last(); int m=rowSet.getRow(); //总行数 int n=pageSize; pageAllCount=((m%n)==0)?(m/n):(m/n+1); } catch (Exception e) { e.printStackTrace(); } } public int getShowPage() { return showPage; } public void setShowPage(int showPage) { this.showPage = showPage; } public String getDatabaseName() { return databaseName; } public void setDatabaseName(String databaseName) { this.databaseName = databaseName; } public String getTableName() { return tableName; } public void setTableName(String tableName) { this.tableName = tableName; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public int getPageSize() { return pageSize; } public int getPageAllCount() { return pageAllCount; } public void setPresentPageResult(StringBuffer presentPageResult) { this.presentPageResult = presentPageResult; } public void setPassword(String password) { this.password = password; } public StringBuffer getPresentPageResult() { if(showPage>pageAllCount) showPage=1; if(showPage<=0) showPage=pageAllCount; presentPageResult=show(showPage); return presentPageResult; } public StringBuffer show(int showPage2) { StringBuffer str=new StringBuffer(); str.append("

"+rowSet.getString(k)+"
"); return str; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值