1.why:

如果只有一个结果集,但不知道该结果集中有多少列,列的名字都是什么.

1).编写通用的查询方法时需要使用.

public <T> T get(Class<T> clazz, String sql, Object ... args){

}

2.what:用于描述ResultSet的对象.

3.how:

①.得到ResultSetMetaData 对象:调用ResultSet的getMetaData() 方法
ResultMetaData rsmd = resultSet.getMetaData();
②.ResultsetMetaData有哪些好用的方法:
>int getColumnCount():结果集中包含哪些列
>String getColumnLabel(int column):获取指定列的别名,索引从1开始

//获取结果集的每一列的别名
for (int i = 0; i < rsmd.getColumnCount(); i++) {
String columnLabel = rsmd.getColumnLabel(i + 1);
}

//关于ResultSetMetaData的示例代码
//1.得到ResultSetMetaData对象
ResultSetMetaData rsmd = result.getMetaData();

while(resultSet.next()){
  //2.打印每一列的列名
  for(int i = 0; i < rsmd.getColumnCount(); i++){
    String columnLabel = rsmd.getColumnLabel(i+1);//获取指定列的别名
    System.out.println(columnLabel);//打印别名

    Object columnValue = resultSet.getObject(columnLabel);#根据别名,获取数据库中对应的数据
    
    values.put(columnLabel, columnValue);
  }
}








01-02 18:36