私はJavaアプリケーションを書いています。ResultSet を取得しました。ここで、テーブルの主キーの列名を調べたいと思います。
ResultSet オブジェクトまたは ResultSetMetaData オブジェクトまたはその他の方法でその列名を取得することは可能ですか?
これを見つける方法が見つかりませんでした。
いいえ。 ResultSetまたはResultSetMetadataからその情報を取得することはできません。
そのために使いたいのはDatabaseMetadataクラスです。そのクラスからgetPrimaryKeysメソッドをチェックして、必要な情報を取得します。
もちろん、これを使用するには、テーブルの名前を知っている必要があります。
追加したいのは、テーブルに自動インクリメント フィールドがある場合、それは主キーでなければならないということです。したがって、コードは次のようになります。
if(metaColumn.isAutoIncrement(i)) {
primaryKey = metaColumn.getColumnName(i);
i=nColoumn+1;
}
を使用していますResultSetMetaData
。
メタデータ情報を確認するために使用できる優れたツールはdbVisualizerです。
JDBC メタデータを使用して、テーブル定義およびデータベースの他の部分を取得します。スキーマとカタログはテーブル定義ビューの列であるため、お気に入りのデータベースのこれらの列に含まれる値を確認できます。
dbVisualizer は無料の基本バージョンで利用できます。