元数据:DB,DB表,或者table的字段信息,比如DB名称,驱动,表中的主键名称。
作用:在框架中完成一些通用型比较高的代码
ResultSetMetaData(结果集元数据):
getColumnCount:获取结果集中列项目的个数
getColumnType:获取指定列的SQL类型对应于Java中Types类的字段
getColumnTypeName:获取指定列的SQL类型
getClassName:获取指定列SQL类型对应于Java中的类型(包名加类名)
代码实现:package JDBC;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;import com.mysql.jdbc.ResultSetMetaData;public class MetaDateDemo { public static void main(String[] args) { Connection conn = null; try { conn = DBtools.getConnection(); String sql ="Select * from emp"; PreparedStatement ps = (PreparedStatement)conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(sql); //结果集元数据 ResultSetMetaData data = (ResultSetMetaData) rs.getMetaData(); //获取元数据的列的数量 int n = data.getColumnCount(); System.out.println(n);// String name =date.getColumnName(1);// System.out.println(name); for(int i = 1;i<=n;i++) {//获取元数据 String name =data.getColumnName(i); System.out.print(name+""); } System.out.println(); while(rs.next()) {//获取数据行数// for(int i=1;i<=n;i++) {// System.out.print(rs.getString(date.getColumnName(i))+"");// }// System.out.println(); for(int i=1;i<=n;i++) { String columnName= data.getColumnName(i); Object object = rs.getObject(columnName); System.out.println(object); } System.out.println(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { DBtools.getConnection(); } }}