Исключение SQLite: оператор вставки не возвращает оператор - PullRequest
4 голосов
/ 13 августа 2011

Я использую SQLiteJDBC в качестве оболочки для встроенной базы данных для моего небольшого Java-приложения. Каждый раз, когда я выполняю инструкцию INSERT, я получаю следующее исключение:

запрос не возвращает ResultSet

Мне интересно, ищет ли меня метод JDBC Statement.executeStatement (String) для возврата ResultSet, но драйвер SQLite знает, что операторы INSERT ничего не возвращают; возможно, SQLiteJDBC выдает ошибку, потому что он не должен возвращать ResultSet, который запрашивает Statement?!?

Вот код, создающий исключение - я убедился, что правильно настроил и закрыл все ресурсы:

statement = con.createStatement();
String sql = "INSERT INTO widgets (widget_age) VALUES (27)";
statement.executeStatement(sql);

Есть идеи?!?

Ответы [ 2 ]

14 голосов
/ 13 августа 2011

Когда вы вносите изменение и не просите вернуть результат, вам нужно позвонить executeUpdate() вместо executeStatement().

EDIT

Я даже нигде не могу найти ссылку на executeStatement(). Вы использовали executeQuery()?

0 голосов
/ 14 августа 2011

Sqlite всегда возвращает сообщение о том, что вы выполняете запрос.

Нормально иметь это предупреждение / ошибку, просто строки не возвращаются, поэтому вы не можете использовать их в обратном вызове, если вы его определили.

PD: Я также думаю, что вы имели в виду executeQuery

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