1、为什么使用ResultSetMetaData?如果只有一个结果集,但不知道该结果集中有多少列,列的名字是什么。
编写通用的查询方法时需要使用。ResultSetMetaData
public <T> T get(Class<T> clazz,String sql,Object。。。 args){
}
2、ResultSetMetaData是什么?
用户描述ResultSet对象。
3、ResultSetMetaData如何使用?
(1)得到ResultSetMetaData对象:调用ResultSet的getMetaData()方法
ResultSetMetaData rsmd = resultSet。getMetaData();ResultSetMetaData
(2)ResultSetMetaData有哪些好用的方法?
int getColumnCount():SQL语句中包含哪些列
String getColumnLabel(int column):获取指定的列的别名,其中索引从1开始
获取结果集的每一列的列名:
while(resultSet。next()){
for(int i=0;i<rsmd。getColumnCount();i++){
String columnLabel = rsmd。getColumnLabel(i+1);
Object columnValue = resultSet。getObject(columnLabel);
}
}
4、使用ResultSetMetaData编写通用的方法
(1)得到ResultSet对象
(2)得到ResultSetMetaData对象
(3)创建一个Map<String,Object>对象,键:SQL查询的列的别名,值:列的值
(4)处理结果集,利用ResultSetMetaData填充3对应的Map对象ResultSetMetaData
(5)若Map不为空集,利用反射创建clazz对应的对象
(6)遍历Map对象,利用反射为Class对象的对应的属性赋值
1。 前言
ResultSetMetaData 叫元数据,是数据库 列对象,以列为单位封装为对象。
元数据,指的是其包含列名,列值,列类型,列长度等等有用信息。
2。 常用方法介绍ResultSetMetaData
ResultSetMetaData 常用方法:
1)。 metaData。getColumnName(i) 获取该列的原始名字
2)。 metaData。getColumnLabel(i) 获取该列的别名
3)。 metaData。getColumnClassName(i) 获取该列的(在java中的)数据类型
4)。 metaData。getColumnType(i) 获取该列的(在数据库中的)数据类型对应的序号
5)。 metaData。getColumnTypeName(i) 获取该列的(在数据库中的)数据类型
6)。 metaData。getScale(i) 获取该列中小数点右边的位数
7)。 metaData。getColumnDisplaySize(i) 获取该列的长度
8)。 metaData。isAutoIncrement(i) 判断该列的值是否自动递增
9)。 metaData。isNullable(i) 判断该列的值是否为null
10)。 metaData。getTableName(i) 获取表名