我有一个名为tList的列表,其中包含tablesdatabase的名称。此列表中的表可能存在也可能不存在。我想从每个表中检索数据(如果存在)。我是这样做的。

for(String t:tList){
    sql=Select * from t
}


但是在这种情况下,如果table不存在,则会出现表不存在且程序终止的异常。如何处理此问题,以便仅在存在该表的情况下才可以检索数据

在另一种情况下,如果存在表但它比以前空,则我得到错误。请在这两种情况下提供帮助

最佳答案

您是否尝试过DatabaseMetaData.getTables()
 例:

DatabaseMetaData md = connection.getMetaData();
ResultSet rs = md.getTables(null, null, t, null); //t is your tableName (defined in loop of your question)
while (rs.next()) {
  System.out.println(rs.getString(3));
}



  编辑


要回答您的空表问题:

  //your query
  sql=Select * from t
  Statement  stmt = yourDBConnection.createStatement();
  ResultSet rs = stmt.executeQuery(sql);
  if (!rs .isBeforeFirst() ) {
   System.out.println("Table is empty");
  }

10-06 12:52
查看更多