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();
}
}
}
}
}