2009-08-25 7 views
1

SQLデータベースからの結合を使用してクエリーされたResultSetを取得したとします。JDBC:テーブルを更新するには?

SQL文を使用してテーブルを更新するか、新しいタプル/行を挿入する方がよいですか?

また、resultSet.update()関数を使用する必要がありますか?

それぞれの欠点と、テーブルを更新する優先メソッドを知りたいだけです。

答えて

2

ResultSet場合にのみ更新可能になります:あなたは適切なフラグ(ResultSet.CONCUR_UPDATABLE)を使用して文を作成しました

  1. 基礎となるデータベース/ドライバは、更新が終わっ結果

に参加サポートしています両方の条件が満たされている場合は、すでにアイテムにカーソルを置いているので、このようにした場合、更新がより効率的になる可能性があります。それ以外の場合は、新しいステートメントを作成する必要があります。そのためにPreparedStatementを使用してください。

+0

なぜ準備文を使用するのですか? – cesar

+0

準備済みのステートメントは、通常のステートメントの代わりに使用する必要があるため、データベースによってキャッシュ/再利用され、パフォーマンスが向上し、SQLインジェクション攻撃から保護されます。 – ChssPly76

+0

+1 - うん、赤ちゃん。 PreparedStatementは唯一の方法です。私はそれらを使用しないことを正当な理由と考えるのは難しいでしょう。 – duffymo

関連する問題