2

ターゲットテーブルと特定のテーブルの特定の列の外部キーの列の両方の名前をフェッチするプレーンJDBCを使用してコードを作成しようとしていますが、コアインターフェイスを通過すると直接見つけることができないようですこれを行う方法。

JDBCを介して外部キーに関するそのような情報を直接取得する方法はありますか、それとも特定のデータベース(この場合はHSQLDB)へのメタデータクエリに頼る必要がありますか?

データベース固有のメタデータクエリを使用する必要がある場合、どのHSQLDB内部メタデータテーブルがその情報を保持しますか?

4

2 に答える 2

5

最善の策は、すべてのテーブル主キー外部キーなどに関する情報を取得するために、すべてのメソッドConnection#getMetaData()で戻ることです。ただし、これが完全にサポートされているかどうかは、JDBCの実装(JDBCドライバーのメーカー/バージョンを参照)に依存します。DatabaseMetaData

于 2010-02-24T22:48:39.703 に答える
1

JDBCはこれをサポートしています。DatabaseMetaData.getCrossReferenceクラスを確認してください。スキーマ、カタログ、テーブル、列などをクエリするためのDatabaseMetdataサポートの他のメソッド。一部のデータベースでは、呼び出しを最適化するためにメタデータ(Oracleなど)をオンにするためにURLに追加のパラメーターが必要であることに注意してください。HQLSBがこれを必要とするかどうかわからない。

于 2010-02-25T01:52:28.350 に答える