当前位置: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   技术分享   语句   是什么   用法   

人气教程排行