ResultSet.insertRow() VS Statement.executeUpdate( "INSERT INTO..." )。哪个更好用?



使用Java在数据库(在我的案例中是Oracle数据库)中插入或更新数据时,最好使用以下哪种:

  • ResultSet.insertRow()ResultSet.updateRow()
  • Statement.executeUpdate(....)

大多数时候,我使用rs.insertRow()rs.updateRow(),这样就避免了编写查询的需要,但这在性能方面合理吗?

我从不使用ResultSet做任何事情,只是遍历它,将它映射到对象或数据结构中,然后关闭它。如果我想插入,我使用PreparedStatement。我的ResultSets从未停留足够长的时间来修改。我更喜欢保持持久性操作的时间较短,这样我就可以尽快关闭连接。我认为这种方法的扩展性更好,因为这样多个用户更容易共享池连接。

我认为部分原因是结果集有多大。如果要循环处理300万条记录,我会使用rs.updateRow(),而不是执行300万次查询。

最新更新