Meta Data即「数据的数据」(Data about data),ResultSet用来表示查询到的数据,而ResultSet数据的数据,即描述查询到的数据背后的数据描述,即用来表示表格名称、字段名称、字段型态等等,这些讯息您可以透过ResultSetMetaData来取得。
下面这个范例直接示范如何取得查询到的数据域位数、表格名称、字段名称与字段数据型态:
package onlyfun.caterpillar; import java.sql.*; public class ResultSetMetaDataDemo { public static void main(String[] args) { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/GUESTBOOK?" + "useUnicode=true&characterEncoding=Big5"; String user = "caterpillar"; String password = "123456"; Connection conn = null; Statement stmt = null; try { Class.forName(driver); conn = DriverManager.getConnection( url, user, password); stmt = conn.createStatement(); ResultSet result = stmt.executeQuery( "SELECT * FROM message"); ResultSetMetaData metadata = result.getMetaData(); for(int i = 1; i <= metadata.getColumnCount(); i++) { System.out.print( metadata.getTableName(i) + "."); System.out.print( metadata.getColumnName(i) + "\t|\t"); System.out.println( metadata.getColumnTypeName(i)); } } catch(ClassNotFoundException e) { System.out.println("找不到驱动程序"); e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); } finally { if(stmt != null) { try { stmt.close(); }? catch(SQLException e) { e.printStackTrace(); } } if(conn != null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); } } } } }