2017-11-13 11 views
-2

私はJDBCコードをデータベースから取得し、実行時にクエリを取得します。実行時にはデータベースに行き、データを取得してファイルに書き込もうとします。 tableが存在しない場合は、テーブルが見つからないという例外があります。これをどう扱う?ここでデータベースにテーブルが存在するかどうかを調べる

私は、実行時にのみチェックする必要があり

ResultSet rs = md.getTable() 
を使用することはできません。

SQL例:ここselect * from table;のPreparedStatementとResultSetの、実行時に

これ以上のループが反復されますと、このテーブル変数は、テーブルの名前を取得します。もしテーブルが存在しなければ、それはコンソール上でこの例外を与えます。

これをスムーズに処理する方法は?

+0

もっとコードを表示するだけです。 MDとは何ですか? DatabaseMetaData? 'getTable'メソッドはなく、' getTables'メソッドだけです。 'md.getTables(null、null、" "、null)'を試してください。 – Dabiuteef

+0

私はそれを使用することができないgetTablesメソッドについてだけ言います – zaib7777

+0

'DatabaseMetaData#getTables()'を使用できない場合、唯一のオプションは、テーブルにアクセスしようとするときに発生する例外をキャッチすることです。なぜあなたは 'getTables()'を使うことができませんか?あなたの投稿を編集し、あなたの問題に関するすべての関連情報を含めてください。 –

答えて

0

この例外が欲しくない場合は、まずデータベースにあるテーブルを確認する必要があります。テーブルが存在しない場合は、その例外を作成して回避することができます。

DatabaseMetaData dbm = con.getMetaData(); 
ResultSet tables = dbm.getTables(null, null, "your_table_name", null); 
if (tables.next()) { 
    // Table exists 
} 
else { 
    // Table does not exist 
} 

テーブルが存在しない場合は、後でそのような例外を回避するために新しいテーブルを作成する必要があります。

関連する問題