ResultSet.insertRow () VS Statement.executeUpdate ("INSERT INTO ..."). Какой лучше использовать? - PullRequest
1 голос
/ 17 февраля 2012

При вставке или обновлении данных в БД (Oracle DB в моем случае) с использованием Java, который лучше использовать:

  • ResultSet.insertRow(), ResultSet.updateRow() или
  • Statement.executeUpdate(....)

Большую часть времени я использую rs.insertRow() и rs.updateRow(), таким образом избегая необходимости писать запросы, но оправдано ли это с точки зрения производительности?

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Я никогда ничего не делаю с ResultSet, кроме как пройтись по нему, отобразить его на объекты или структуры данных и закрыть его. Если я хочу вставить, я делаю это с PreparedStatement. Мой ResultSets никогда не остается достаточно долго, чтобы его можно было изменить. Я предпочитаю, чтобы операции персистентности были короткими, чтобы я мог как можно быстрее закрыть соединение. Я думаю, что этот подход лучше масштабируется, потому что таким образом нескольким пользователям проще совместно использовать соединения в пуле.

0 голосов
/ 08 мая 2018

Я думаю, что отчасти это зависит от того, насколько велик набор результатов.Если вы просматриваете 3 миллиона записей, я бы использовал rs.updateRow (), а не выполнял запрос 3 миллиона раз.

...