Java DB 数据库,检查所有表名

标签 java derby

我的 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/

相关文章:

java - 重置 JDBC 中的主键计数器

java - 如何使用 AspectJ 过滤方法的返回值?

java - 寻找一种解析多类型 JSON 字段的方法

java - 我们如何在 Thymeleaf 条件运算符中获取 java 对象值( url )?

Java EE 与 netbeans

java - 如何在ClientDataSource中设置内存数据库?

java - 如何检查我是否从java插入数据库

Java记录器配置文件不生效

sql - 自动生成时找出主键

java - HIbernate Maven项目:没有名为EntityManager的持久性提供程序