ResultSet如何动态获取列名和值

  ResultSet rs = stmt.executeQuery(sql);

  ResultSetMetaData data = rs.getMetaData();

  for (int i = 1; i <= data.getColumnCount(); i++) {

  // 获得所有列的数目及实际列数

  int columnCount = data.getColumnCount();

  // 获得指定列的列名

  String columnName = data.getColumnName(i);

  // 获得指定列的列值

  int columnType = data.getColumnType(i);

  // 获得指定列的数据类型名

  String columnTypeName = data.getColumnTypeName(i);

  // 所在的Catalog名字

  String catalogName = data.getCatalogName(i);

  // 对应数据类型的类

  String columnClassName = data.getColumnClassName(i);

  // 在数据库中类型的最大字符个数

  int columnDisplaySize = data.getColumnDisplaySize(i);

  // 默认的列的标题

  String columnLabel = data.getColumnLabel(i);

  // 获得列的模式

  String schemaName = data.getSchemaName(i);

  // 某列类型的精确度(类型的长度)

  int precision = data.getPrecision(i);

  // 小数点后的位数

  int scale = data.getScale(i);

  // 获取某列对应的表名

  String tableName = data.getTableName(i);

  // 是否自动递增

  boolean isAutoInctement = data.isAutoIncrement(i);

  // 在数据库中是否为货币型

  boolean isCurrency = data.isCurrency(i);

  // 是否为空

  int isNullable = data.isNullable(i);

  // 是否为只读

  boolean isReadOnly = data.isReadOnly(i);

  // 能否出现在where中

  boolean isSearchable = data.isSearchable(i);