0

xyz_tbl、pqr_tbl などの _tbl で終わるすべてのデータベース テーブル名を取得したい..mysql で java.pls を使用して助けてください..現在、私のクエリはすべてのテーブル名を取得しますが、_tbl で終わるテーブル名が必要です。私のコードは...

public List selectTable() {
    List tableNameList= new ArrayList();

    try {
        DatabaseMetaData dbm = c.conn.getMetaData();
        String[] types = {"TABLE"};
        c.rs = dbm.getTables(null, null, "%", types);
        while (c.rs.next()) {
            tableNameList.add(c.rs.getString("TABLE_NAME"));
        }            
    } catch(Exception e) {
        System.out.println(e.toString());              
    }
    return tableNameList;
}
4

4 に答える 4

1

mysqlクエリを使用できます

show tables from tablename like '%_tbl';
于 2012-11-06T07:57:01.817 に答える
1

別のテーブル名パターンを使用してみましたか?

これを試すことができます: -

c.rs = dbm.getTables(null, null, "%_tbl", types);
于 2012-11-06T07:57:27.983 に答える
1

Rohit の投稿に返信できません。彼の答えは正しいようです。

DatabaseMetaData の getTables メソッドの JDK ドキュメントを参照する場合、署名とドキュメントのコメントは次のとおりです。

ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, 
                    String[] types) throws SQLException

パラメーター:

catalog - カタログ名; データベースに格納されているカタログ名と一致する必要があります。"" は、カタログのないものを取得します。null は、カタログ名を検索の絞り込みに使用しないことを意味します
schemaPattern - スキーマ名パターン。データベースに格納されているスキーマ名と一致する必要があります。"" はスキーマのないものを取得します。null は、スキーマ名を使用して検索を絞り込むべきではないことを意味します
tableNamePattern - テーブル名パターン。データベース
タイプに格納されているテーブル名と一致する必要があります。null はすべての型を返します

この場合、使用%_tblはうまくいくはずです。

于 2012-11-06T08:12:35.263 に答える
0

String.endsWith() メソッドを使用して、テーブル名が「_tbl」で終わっているかどうかを確認します。

たとえば、 while ループ内では次のようになります。

 while (c.rs.next())
 {
      String tableName = c.rs.getString("TABLE_NAME");
      if(tableName.endsWith("_tbl"))
      {
          tableNameList.add(c.rs.getString("TABLE_NAME"));
      }
 }
于 2012-11-06T07:54:56.203 に答える