当表不存在时,executeQuery失败

时间:2014-06-04 09:24:17

标签: java mysql

我有一个系统,其中有数百个表。所以我通过在循环中进行sql查询来获取它们的值。但是如果任何表不存在则退出进一步执行。 如果任何表不存在,我可以放置条件然后搜索下一个表....

2 个答案:

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