我是一名新的Java程序员。我对使用getTable方法的数组感到困惑。此代码仅在我将数组保留为空时才起作用,如--String [] types = {};或者使用{“TABLE”};在...里面我尝试访问RS以外的数组,并且没有存储表名....为什么我们甚至使用这个数组并在getTable方法bcz中传递它的名字来查看我们打印rs的表名... ..我不明白这个数组的目的是用{“TABLE”}写在里面,还有什么是这个String [] types = {“TABLE”,“VIEW”};因为如果我写的字符串[] types = {“hey”,“you”};
public void getDatabaseMetaData(){
try {
DatabaseMetaData md = conn.getMetaData();
String[] types = {"TABLE"};
//OR using String[] types = {"TABLE", "VIEW"};
Result-set rs = md.get-tables(null, null, "%", types);
while (rs.next()) {
System.out.println(rs.getString("TABLE_NAME"));
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
Java为其所有类,方法等提供了大量文档。我强烈建议您在询问Stack Overflow之前阅读它,因为它通常会回答您的问题。
<强>参数强>:
[..]
types
- 表类型列表,必须来自返回的表类型列表getTableTypes()
,包括; null返回所有类型
换句话说,types
列是一个包含要包含的表类型的数组。如果我们查看DatabaseMetaData.getTableTypes()
,就会说:
检索此数据库中可用的表类型。结果是 按表格类型排序。
表格类型为:
- 醇>
TABLE_TYPE
String =&gt;表格类型。典型的类型有"TABLE"
,"VIEW"
,"SYSTEM TABLE"
,"GLOBAL TEMPORARY"
,"LOCAL TEMPORARY"
,"ALIAS"
,"SYNONYM"
。
换句话说,当您使用getTables(null, null, "%", types)
时,types
的值表示您想要返回的表类型。
例如,使用null
返回所有表,只有{ "TABLE" }
个'真实'用户表(但不是系统表),{ "TABLE", "VIEW" }
,您将获得全部真实'用户表和用户视图(驱动程序通常将类型"SYSTEM TABLE"
下的系统视图分组)等。
指定{ "hey", "you" }
时它不起作用的原因是因为它们不是JDBC驱动程序识别的表类型。