How can I detect a SQL table's existence in Java?
How can I detect if a certain table exists in a given SQL database in Java?
Solution 1:
You can use DatabaseMetaData.getTables() to get information about existing tables.
This method works transparently and is independent of the database engine. I think it queries information schema tables behind the scenes.
Edit:
Here is an example that prints all existing table names.
DatabaseMetaData md = connection.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
System.out.println(rs.getString(3));
}
Solution 2:
Use java.sql.DatabaseMetaData.getTables(null, null, YOUR_TABLE, null)
. If the table exists, you will get a ResultSet
with one record.
See DatabaseMetaData.getTables