[此贴子已经被作者于2007-1-29 16:47:08编辑过]
[此贴子已经被作者于2007-1-29 16:47:08编辑过]
[此贴子已经被作者于2007-1-30 10:32:08编辑过]
根据DataBaseMetaData获得数据库表名````
results =
dma.getTables(catalog, schema, tablemask, types[]);
其中参数的意义是:
catalog
要在其中查找表名的目录名。对于 JDBC-ODBC 数据库以及许多其他数据库而言,可将其设置为 null。这些数据库的目录项实际上是它在文件系统中的绝对路径名称。
schema
要包括的数据库“方案”。许多数据库不支持方案,而对另一些数据库而言,它代表数据库所有者的用户名。一般将它设置为 null。
tablemask
一个掩码,用来描述您要检索的表的名称。如果您希望检索所有表名,则将其设为通配符 %。请注意,SQL 中的通配符是 % 符号,而不是一般 PC 用户的 * 符号。
types[]
这是描述您要检索的表的类型的 String 数组。数据库中通常包括许多用于内部处理的表,而对作为用户的您没什么价值。如果它是空值,则您会得到所有这些表。如果您将其设为包含字符串“TABLES”的单元素数组,您将仅获得对用户有用的表格。
用于从数据库中获取表名的简单代码相当于获取 DatabaseMetaData 对象,并从其中检索表名:
con = DriverManager.getConnection(url);
//获取数据库的元数据
dma =con.getMetaData();
//将数据库中的表的名称转储出来
String[] types = new String[1];
types[0] = "TABLES"; //设置查询类型
//请注意通配符是 % 符号(而不是“*”)
results = dma.getTables(null, null, "%", types);
然后,我们可以打印出表名,正如我们上面所做的那样:
boolean more = results.next();
while (more)
{
for (i = 1; i <= numCols; i++)
System.out.print(results.getString(i)+" ");
System.out.println();
more = results.next();
}
[此贴子已经被作者于2007-1-30 17:47:03编辑过]