2009-08-25 75 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