java - 在 mssql 的情况下,metadata.getTables 结果集为空

标签 java mysql sql-server oracle metadata

我正在尝试从数据库下选择所有表名。为此使用以下代码行。

DatabaseMetaData databaseMetaData =  connection.getMetaData();
            resultSet = databaseMetaData.getTables(null, dbName, null, null);
            while(resultSet.next()){
                        //doing operations - take table name and all that
                        }

这里的问题是在 mysql 的情况下它工作正常,这意味着如果底层数据库是 mysql - 没问题。但是当我用 mssql 尝试相同的代码时,结果集为空。是否有其他替代方法可以从 mssql 数据库中获取表的详细信息?

如果它..请提供区别以在差异数据库(如 mysql、mssql、oracle)下获取表详细信息;因为在我的情况下,我的数据库可能是上述任何一个。 任何人都可以在这方面提供帮助。

最佳答案

获取代码,例如:

Connection con = null;
    try {

      Class.forName(
        "com.microsoft.sqlserver.jdbc.SQLServerDriver");
      con = DriverManager.getConnection(
          "jdbc:sqlserver://localhost:1269;"
        + "user=sa;password=HerongYang;"
        + "database=AdventureWorksLT");

      DatabaseMetaData meta = con.getMetaData();
      ResultSet res = meta.getTables(null, null, null, 
         new String[] {"TABLE"});
      System.out.println("List of tables: "); 
      while (res.next()) {
         System.out.println(
            "   "+res.getString("TABLE_CAT") 
           + ", "+res.getString("TABLE_SCHEM")
           + ", "+res.getString("TABLE_NAME")
           + ", "+res.getString("TABLE_TYPE")
           + ", "+res.getString("REMARKS")); 
      }
      res.close();

      con.close();

你可以试试这个页面的链接:

Listing All Tables - getTables()

关于java - 在 mssql 的情况下,metadata.getTables 结果集为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11322863/

相关文章:

mysql - 如何将 SQL Server 数据库导出到 MySQL?

java - 如何从 Java 查询 SQL 浏览器服务?

javascript - 如何插入单选按钮的选中值,该值是来自php中另一个表的数组

php - Codeigniter-3 调用存储过程返回 null

java - 如何按字母顺序 File.listFiles?

java - Java 中 C 的标准库 rand() 函数

MySQL SELECT 中的公共(public)外键

sql - 成套查询思想?

java - 具有共享代码库和资源的 Swing 和 Android 应用程序

Java SE 7 认证示例任务无法理解