我有一个系统,其中有数百个表。所以我通过在循环中进行sql查询来获取它们的值。但是如果任何表不存在则退出进一步执行。 如果任何表不存在,我可以放置条件然后搜索下一个表....
答案 0 :(得分:0)
你可以用它。这将返回表的列表,遍历它并查看表是否存在。
DatabaseMetaData meta = con.getMetaData();
ResultSet res = meta.getTables(null, null, null,
new String[] {"TABLE"});
while (res.next()) {
System.out.println(
" "+res.getString("TABLE_CAT")
+ ", "+res.getString("TABLE_SCHEM")
+ ", "+res.getString("TABLE_NAME")
+ ", "+res.getString("TABLE_TYPE")
+ ", "+res.getString("REMARKS"));
}
答案 1 :(得分:0)
你可以抓住异常:
List<String> tableNames = ...;
Statement stmt = ...;
ResultSet rs = null;
for (String tableName : tableNames) {
String sql = buildQuery(tableName);
try {
rs = s.executeQuery(sql);
useData(rs);
} catch {
log.error ("could not execute query on " + tableName);
} finally {
if (rs != null) {
rs.close();
}
}
}