我有一个名为tList
的列表,其中包含tables
的database
的名称。此列表中的表可能存在也可能不存在。我想从每个表中检索数据(如果存在)。我是这样做的。
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");
}