import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
/**
* 这个类封装了对记录集的操作
* time:2004-07-07
* @author:董政利
* @version 1.0
*/
public class RS
{
//记录集
private ResultSet rs;
//记录集详细信息
private ResultSetMetaData rsmd;
//记录集列的个数
private int numCols;
//记录集行的个数
private int numRows;
/**
* 构造函数
*/
public RS()
{
}
/**
* 初始化记录集
*/
public void setRS(ResultSet rs)
{
this.rs=rs;
try
{
rsmd=rs.getMetaData();
numCols=rsmd.getColumnCount();
}
catch (Exception ex)
{
System.out.println ("dzl:RS--> setRS: "+ex.toString());
}
}
/**
* 返回记录集的列数
*/
public int getColCount()
{
return numCols;
}
/**
* 获取记录集行数
*/
public int getRowCount()
{
numRows=-1;
try
{
rs.last();
numRows = rs.getRow();
rs.beforeFirst();
}
catch(Exception ex)
{
System.out.println ("dzl:RS-->getColCount: "+ex.toString());
}
return numRows;
}
/**
* 返回指定记录集的所有列名
*/
public String[] getColName()
{
String md[]=new String[numCols];
try
{
for (int i = 1; i
{
md[i-1]=rsmd.getColumnName(i);
}
}
catch (Exception ex)
{
System.out.println ("dzl:RS-->getColName: "+ex.toString());
}
return md;
}
/**
* 将行的内容复制到数组中
*/
private String[] getRowValue()
{
String[] row=new String[numCols];
try
{
for (int i = 1; i
{
row[i-1]=rs.getString(i);
}
}
catch (Exception ex)
{
System.out.println ("dzl:RS-->getRowValue: "+ex.toString());
}
return row;
}
/**
* 将记录集中的数据复制到数组中
*/
public String[][] getArray(boolean hasTitle)
{
ArrayList al =new ArrayList();
String[][] allValue=null;
try
{
if(hasTitle)
{
al.add(getColName());
}
while(rs.next())
{
al.add(getRowValue());
}
rs.beforeFirst();
Object[] arryObject =(Object[])al.toArray();
int rowLen=arryObject.length;
int colLen=numCols;
allValue=new String[rowLen][colLen];
String[] rowValue=null;
for (int i = 0; i
{
rowValue=(String[])arryObject[i];
for (int j = 0; j
{
allValue[i][j]=rowValue[j];
}
}
return allValue;
}
catch(Exception ex)
{
System.out.println ("dzl:RS-->getArray: "+ex.toString());
}
return allValue;
}
/**
* 将记录集转换成字符串
*/
public String toString(String rowToken,String colToken,boolean hasTitle) throws Exception
{
String strAllValue="";
String[][] allValue=getArray(hasTitle);
for(int i=0;i
{
for(int j=0;j
{
strAllValue+=allValue[i][j]+colToken;
}
strAllValue=strAllValue.substring(0,strAllValue.length()-1)+rowToken;
}
strAllValue=strAllValue.substring(0,strAllValue.length()-1);
return strAllValue;
}
/**
* 关闭记录集
*/
public void closeRS()
{
try
{
rs.close();
rs=null;
}
catch (Exception ex)
{
System.out.println ("dzl:RS-->Close: "+ex.toString());
}
}
}
上面的代码主要实现了对resultset的一些高级方法,其中有很多不足之处希望大家多多指教。