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);
}
}