当前位置:Gxlcms >
数据库问题 >
JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法
JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法
时间:2021-07-01 10:21:17
帮助过:21人阅读
ResultSetMetaData 简介
* 定义: 是描述ResultSet 的元数据对象,即从中可以或许到结果集中有多少列,列名是什么...
* 用法:
* 得到ResultSetMetaData 对象: 调用ResultSet的 getMetaData()方法即可!
* ResultSetMetaData的常用方法:
* >int getColumnCount() : SQL语句中包含的列的总个数
* >String getColumnLabel(int column) : 获取指定的列的别名,其中索引从1开始;
*
*/
public class testResultSetMetaData {
@Test
public void testResultSetMetaData(){
Connection connection=
null;
PreparedStatement preparedStatement=
null;
ResultSet resultSet=
null;
try {
String sql="select id,author_name name,nation "+
"from author where id <= ?"
;
connection =
JDBCTools.getConnection();
preparedStatement=
connection.prepareStatement(sql);
preparedStatement.setInt(1,5
);
resultSet=
preparedStatement.executeQuery();
Map<String,Object> values=
new HashMap<String,Object>
();
//1. 得到ResultSetMetaData 对象
while (resultSet.next()) {
//2.打印每一列的列名
ResultSetMetaData rsmd=
resultSet.getMetaData();
for (
int i = 0; i < rsmd.getColumnCount(); i++
) {
String columnLabel = rsmd.getColumnLabel(i + 1);
//获取列表标签名称
// System.out.print("\n" + columnLabel + "\t");
Object columnValue=resultSet.getObject(columnLabel);
//根据名称,获取列值,存入HashMap
values.put(columnLabel,columnValue );
}
//System.out.println(values); //获取一组结果 ,重复的键值对会被后面的覆盖掉
Class clazz=author.
class;
Object object=
clazz.newInstance();
for(Map.Entry<String,Object>
entry: values.entrySet()){
String fieldName =
entry.getKey();
Object fieldValue =
entry.getValue();
System.out.print("\t"+fieldName+"-->"+
fieldValue);
}
System.out.print("\n******************"
);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.release(resultSet,preparedStatement ,connection);
}
}
}
结果:
com.mysql.jdbc.JDBC4Connection@19e1023e
nation-->中国 name-->莫言 id-->1
****************** nation-->中国 name-->村上春树 id-->2
****************** nation-->中国 name-->山枫叶纷飞 id-->3
****************** nation-->北京 name-->刘慈欣 id-->4
****************** nation-->元星 name-->瑞 id-->5
******************
JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法
标签:except shm inf 调用 .exe 技术分享 语句 是什么 用法