2

そのため、テーブルを編集する機能を必要とするプロジェクトにVaadinJavaWebフレームワークを使用しています。Vaadinは、Connectionオブジェクトを取得する方法を提供しますSimpleJDBCConnectionPoolこれがAPIです) 。

からオブジェクトConnectionを取得できDatabaseMetaDataます。そして、私は次のコードを持っています:

private List<String> getTableNames(DatabaseMetaData md) throws SQLException {
        ArrayList<String> tables = new ArrayList<String>();
        ResultSet rs = md.getTables(null, null, "", null);
        while (rs.next()) {
            tables.add(rs.getString("TABLE_NAME")); //Column 3 is for table name
            Logger.getLogger(CodeContainingClass.class.getName()).
                    info("Comment: " + rs.getString("REMARKS")); //Column 5 is for remarks
        }
        return tables;
}

テーブル名を正しく取得しますが、残念ながらREMARKSはを返しますnull。(これがAPIです)。何が間違っているのかわかりません。

次のクエリを使用して、テーブルにコメントがあることを確認しました。

SHOW TABLE STATUS WHERE Name='tablename';

どんな助けでも大歓迎です。どうもありがとうございます。

4

2 に答える 2

2

このMySQLConnector/ Jのバグを参照してください(具体的には、2012年6月27日11:26および2012年6月28日11:18のコメント)。useInformationSchema=trueこの機能を利用するには、接続プロパティを指定する必要があります。

Connector/J接続のプロパティも参照してください

于 2013-01-03T20:34:47.320 に答える
-1

MySQLでは、各テーブルに関連付けられたコメントはから入手できますinformation_schema

このクエリを試してください:

 SELECT TABLE_NAME, TABLE_COMMENT
   FROM INFORMATION_SCHEMA.TABLES
  WHERE TABLE_SCHEMA = 'YourDatabaseName'

実際に使用しているデータベース名に置き換えてください。

于 2013-01-03T20:34:39.583 に答える