DatabaseMetaData(数据库元数据)
1 获得DatabaseMetaData对象 DatabaseMetaData dbmd = conn.getMetaData(); conn为一个Connection对象 2 使用DatabaseMetaData可以获得如下信息 数据库与用户,数据库标识符以及函数与存储过程 数据库支持与不支持的功能 数据库的限制,如数据库名称的最大长度 架构,编目,表和列 3 实例 获取表清单
import java.sql.*;
import java.util.*;
import Collections.*;
public class GetTableList {
public static void main(String[] args) {
Connection conn = null;
ResultSet rset = null;
try {
conn = ConnectionFactory.getConnection();
DatabaseMetaData dbmd = conn.getMetaData();
String[] types = {"TABLE"};
rset = dbmd.getTables(null,null,null,types);
Vector v = new Vector();
while(rset.next()) {
String name = rset.getString("TABLE_NAME");
v.add(name);
}
Collections.sort(v);
} catch(Exception e) {
e.printStackTrace();
}
finally {
ConnectionFactory.close(rset);
ConnectionFactory.close(conn);
}
}
}
注:ConnectionFactory为构建的一个类,这里没有给出源代码。 String[] types 是一个指出返回何种表的数组,可能的选项包括 "TABLE" "VIEW" " SYSTEM TABLE" "CLOBAL TEMPORARY" "LOCAL TEMPORARY" "ALIAS" "SYNONYM" .
getTables方法返回的ResultSet对象中的列包括
TABLE_CAT 该表属于的那个编目的名称
TABLE_SCHEM 该表属于的那个架构的名称
TABLE_NAME 该表的名称
TABLE_TYPE 该表的类型
REMARKS 备注
ResultSetMetaData(结果集元数据) 由于结果集可以含有从表中派生的一些列的信息,所以该对象可以含有不是数据库中列的一些信息。
1。获得ResultSetMetaData对象
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
注意:上面的查询不必返回任何行,并不影响结果集元数据的创建。
import java.sql.*;
import java.util.*;
import Collections.*;
public class GetTableList {
public static void main(String[] args) {
Connection conn = null;
ResultSet rset = null;
try {
conn = ConnectionFactory.getConnection();
DatabaseMetaData dbmd = conn.getMetaData();
String[] types = {"TABLE"};
rset = dbmd.getTables(null,null,null,types);
Vector v = new Vector();
while(rset.next()) {
String name = rset.getString("TABLE_NAME");
v.add(name);
}
Collections.sort(v);
} catch(Exception e) {
e.printStackTrace();
}
finally {
ConnectionFactory.close(rset);
ConnectionFactory.close(conn);
}
}
}
注:ConnectionFactory为构建的一个类,这里没有给出源代码。 String[] types 是一个指出返回何种表的数组,可能的选项包括 "TABLE" "VIEW" " SYSTEM TABLE" "CLOBAL TEMPORARY" "LOCAL TEMPORARY" "ALIAS" "SYNONYM" .
getTables方法返回的ResultSet对象中的列包括
TABLE_CAT 该表属于的那个编目的名称
TABLE_SCHEM 该表属于的那个架构的名称
TABLE_NAME 该表的名称
TABLE_TYPE 该表的类型
REMARKS 备注
ResultSetMetaData(结果集元数据) 由于结果集可以含有从表中派生的一些列的信息,所以该对象可以含有不是数据库中列的一些信息。
1。获得ResultSetMetaData对象
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
注意:上面的查询不必返回任何行,并不影响结果集元数据的创建。