4

データベースの下からすべてのテーブル名を選択しようとしています。そのために次のコード行を使用しています。

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 などの diff データベースの下でテーブルの詳細をフェッチするための区別を提供してください。私の場合のように、私のデータベースは上記のいずれかである可能性があります。誰でもこれを手伝ってもらえますか。

4

3 に答える 3

1

EXAMPLE のフェッチのコード:

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();

このページでこのリンクを試すことができます:

すべてのテーブルの一覧表示 - getTables()

于 2012-07-04T05:32:48.243 に答える
0

以下のリンクが参考になると思います。

http://www.roseindia.net/jdbc/jdbc-mysql/AllTableName.shtml

于 2012-07-04T05:37:08.793 に答える