В чем вред использования executeQuery вместо executeUpdate для удаления строк? - PullRequest
0 голосов
/ 14 октября 2010

В моем коде я использую

String query= "delete all from myTable";
stmt.executeQuery(query);

В идеале для DML следует использовать executeUpdate.Однако executeQuery тоже работает хорошо.Итак, было интересно узнать, что может быть вредом при использовании executeQuery вместо executeUpdate?

Ответы [ 2 ]

1 голос
/ 14 октября 2010

Он не сообщает вам, сколько строк было затронуто.

Создает ResultSet (или, возможно, нет?) Сомнительного значения.

И вы уверены, что это хорошо работает со всемибазы данных?В Javadoc говорится, что драйвер может выдать исключение SQLException, если «данный оператор SQL создает что-то отличное от одного объекта ResultSet», к которому, вероятно, подходит DELETE.

Если вы действительно не знаете, собираетесь ли вы запускатьзапрос или DML, вы можете использовать execute (), который работает для обоих, а затем позволяет вызывать getUpdateCount или getResultSet и даже getMoreResults.

1 голос
/ 14 октября 2010

Во-первых, вы не получите номер обновленной строки.

Во-вторых, в зависимости от драйвера JDBC ваш запрос может быть неудачным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...