2009-08-25 51 views
1

假設我得到一個使用來自sql數據庫的連接進行查詢的ResultSet。JDBC:更新表的最佳方式?

使用sql語句更新表或插入新的元組/行是更好嗎?

或者我應該使用resultSet.update()函數?

我只想知道與每個更新相關的缺點以及更新表的首選方法。

回答

2

ResultSet如果只會更新:

  1. 您已經創建的語句與相應的標誌(ResultSet.CONCUR_UPDATABLE)
  2. 底層數據庫/驅動程序支持更新過的連接結果

如果兩個條件都爲真,那麼以這種方式完成更新可能會更有效率,因爲您已經將光標放在該項目上。否則,你需要創建一個新的語句 - 一定要使用PreparedStatement。

+0

爲什麼使用準備好的語句? – cesar 2009-08-25 23:58:07

+0

由於準備好的語句幾乎總是用來代替常規語句 - 它們可以被數據庫緩存/重用,從而提高性能,並且可以保護您免受SQL注入攻擊等等。 – ChssPly76 2009-08-26 00:00:32

+0

+ 1 - 是的,寶貝。 PreparedStatement是唯一的方法。我很難想出不使用它們的好理由。 – duffymo 2009-08-26 00:04:28