我的 java 应用程序中有一个嵌入式 Derby 数据库
,并且有多个表
(这些表会被创建和删除,所以没有什么是一成不变的)。我希望能够返回数据库
中当前所有表
的名称列表,因为我必须在应用程序中显示该列表并从中获取所有信息。
最简单的方法?我不需要代码,只需要一个或多个方法。我是一个糟糕的 google-fu 用户。
目前,我的代码通过从输入的特定表名称中获取 ResultSet
来工作,但这仅用于测试目的,我需要能够显示我拥有的表的完整列表。
编辑:我当前的解决方法实际上与发布的不同。我只是有另一个表
,它保存所有创建的表名称,并在创建/删除表时更新。显然不是最好的方法,但它现在对我有用。
最佳答案
DatabaseMetaData metaData = connection.getMetaData();
ResultSet resultSet = metaData.getTables(null, "schenaName", "%" ,new String[] {"TABLE"} );
while (resultSet.next()) {
System.out.println(resultSet.getString(3));
}
添加新答案:
Connection connection = getDBConnection();
DatabaseMetaData dbMetaData = connection.getMetaData();
//getting catalogs for mysql DB, if it is not working for your DB, try dbMetaData.getSchemas();
ResultSet catalogs = dbMetaData.getCatalogs();
while(catalogs.next()){
String catalogName = catalogs.getString(1);
//excluding table names from "mysql" schema from mysql DB.
if(!"mysql".equalsIgnoreCase(catalogName)){
ResultSet tables = dbMetaData.getTables(catalogName, null, null, null);
while(tables.next()){
System.out.println(catalogName + "::"+tables.getString(3));
}
}
}
关于Java DB 数据库,检查所有表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23725304/