2011-08-01 12 views
4

特定のデータベーステーブルに特定の名前のカラムが存在するかどうかを知る方法は不思議でした。私はJDBCを使用していますが、純粋なSQLを使用することができれば、さらに優れています。しかし、ソリューションはDBMSプロバイダとは独立していなければなりません。私は、テーブルの最初の行をクエリし、そこからResultSetMetaDataを取得することでそれを行うことができると思いますが、それはテーブルに行があることを前提としています。私はそれも空のテーブルで動作するようにしたいと思います。前もって感謝します!JDBCでカラム名を取得する

+0

テーブルが空の場合でも 'ResultSetMetaData'は動作します... –

答えて

12

DatabaseMetaDataから入手できます。

DatabaseMetaData meta = connection.getMetaData(); 
ResultSet rs = meta.getColumns(...); 
+3

' getColumns(null、null、tablename、null) 'を使用してカラムを取得すると、テーブル名が大文字であることに注意してくださいテーブルのために。 – Andrew

2

テーブルが空であるかどうかは関係ありません。 ResultSetMetaDataは、ResultSetオブジェクトの列の型とプロパティに関する情報を提供します。

2

java.sql.DatabaseMetaDataインターフェイスを使用して、データベースの構造に関する一般的な情報を取得できます。

DatabaseMetaData dbmeta = con.getMetaData(); 

getColumns()を呼び出して、使用可能な表の列の説明を取得します。

関連する問題