ShowRecordByPage.java

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("<table border=1>");
str.append("<tr>");
for(int i=0;i<fieldNum;i++){
str.append("<th>"+field[i]+"</th>");
}
str.append("</tr>");
try {
rowSet.absolute((showPage-1)*pageSize+1);
rowSet.absolute(1);
for(int i=1;i<=pageSize;i++){
str.append("<tr>");
for(int k=1;k<=fieldNum;k++)
str.append("<td>"+rowSet.getString(k)+"</td>");
str.append("</tr>");
rowSet.next();
}
} catch (Exception e) {
e.printStackTrace();
}
str.append("</table>");
return str;
}






}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值