获得结果集的字段名称,ResultSet的属性要调用ResultSetMetaData的方法

public interface ResultSetMetaData可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。以下代码片段创建 ResultSet 对象 rs,创建 ResultSetMetaData 对象 rsmd,并使用 rsmd 查找 rs 有多少列,以及 rs 中的第一列是否可以在 WHERE 子句中使用。       ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");      ResultSetMetaData rsmd = rs.getMetaData();      int numberOfColumns = rsmd.getColumnCount();      boolean b = rsmd.isSearchable(1);

方法摘要
StringgetCatalogName(int column)
           获取指定列的表目录名称。
StringgetColumnClassName(int column)
           如果调用方法 ResultSet.getObject 从列中检索值,则返回构造其实例的 Java 类的完全限定名称。
intgetColumnCount()
           返回此 ResultSet 对象中的列数。
intgetColumnDisplaySize(int column)
           指示指定列的最大标准宽度,以字符为单位。
StringgetColumnLabel(int column)
           获取用于打印输出和显示的指定列的建议标题。
StringgetColumnName(int column)
           获取指定列的名称。
intgetColumnType(int column)
           检索指定列的 SQL 类型。
StringgetColumnTypeName(int column)
           检索指定列的数据库特定的类型名称。
intgetPrecision(int column)
           获取指定列的小数位数。
intgetScale(int column)
           获取指定列的小数点右边的位数。
StringgetSchemaName(int column)
           获取指定列的表模式。
StringgetTableName(int column)
           获取指定列的名称。
booleanisAutoIncrement(int column)
           指示是否自动为指定列进行编号,这样这些列仍然是只读的。
booleanisCaseSensitive(int column)
           指示列的大小写是否有关系。
booleanisCurrency(int column)
           指示指定的列是否是一个哈希代码值。
booleanisDefinitelyWritable(int column)
           指示在指定的列上进行写操作是否明确可以获得成功。
intisNullable(int column)
           指示指定列中的值是否可以为 null。
booleanisReadOnly(int column)
           指示指定的列是否明确不可写入。
booleanisSearchable(int column)
           指示是否可以在 where 子句中使用指定的列。
booleanisSigned(int column)
           指示指定列中的值是否带正负号。
booleanisWritable(int column)
           指示在指定的列上进行写操作是否可以获得成功。

可以自己定义一个类或实现接口。
/**
* <p>名称:记录信息类 </p>
* <p>功能:转换需要使用接口ResultSetMetaData的信息 </p>
* <p>备注:没有转化所有的ResultSetMetaData的方法,这里只是处理了字段名称,字段显示长度,字段类型,字段标识等</p>
*/
public class RecordMetaData
{
private int columnCount = 0;
private int[] columnDisplaySizes;
private String[] columnLabels;
private String[] columnNames;
private int[] columnTypes;
private String[] columnTypeNames;
public void setColumnCount(int columnCount) {
    this.columnCount = columnCount;
}
public void setColumnDisplaySizes(int[] columnDisplaySizes) {
    this.columnDisplaySizes = columnDisplaySizes;
}
public void setColumnLabels(String[] columnLabels) {
    this.columnLabels = columnLabels;
}
public void setColumnNames(String[] columnNames) {
    this.columnNames = columnNames;
}
public void setColumnTypes(int[] columnTypes) {
    this.columnTypes = columnTypes;
}
public void setColumnTypeNames(String[] columnTypeNames) {
    this.columnTypeNames = columnTypeNames;
}
public int getColumnCount() {
    return this.columnCount;
}
public int[] getColumnDisplaySizes() {
    return this.columnDisplaySizes;
}
public String[] getColumnLabels() {
    return this.columnLabels;
}
//获得字段名称!
public String[] getColumnNames() {
    return this.columnNames;
}
public int[] getColumnTypes() {
    return this.columnTypes;
}
public String[] getColumnTypeNames() {
    return this.columnTypeNames;
}
public int getColumnDisplaySize(int column) {
    return this.columnDisplaySizes[column-1];
}
public String getColumnLabel(int column) {
    return this.columnLabels[column-1];
}
public String getColumnName(int column)
{
    return this.columnNames[column-1];
}
public int getColumnType(int column) {
    return this.columnTypes[column-1];
}
public String getColumnTypeName(int column) {
    return this.columnTypeNames[column-1];
}
public String toString()
{
      StringBuffer sbOut=new StringBuffer("");
      sbOut.append(" the RecordMetaData String is:/n");
      for(int i=0;i<columnNames.length;i++)
      {
          sbOut.append("    colIndex="+(i+1)+",colName="+columnNames+"/n");
      }
      return sbOut.toString();
}
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值