Запрос, который работает в студии управления и в executeUpdate
, делает тот же executeUpdate
return -1
, который undefined в любой документации, которую мы можем найти. Предполагается, что он возвращает только строку или 0
. Что это значит? Драйвер - это мост JDBC-ODBC, если это имеет значение.
Пример:
String query = "IF NOT EXISTS (SELECT * FROM animals WHERE animal_name ='" + a +"') INSERT INTO " + table + " (animal_name, animal_desc, species_id) VALUES ('" + a + "', '" + b + "', " + c + ")";
int result = statement.executeUpdate(query);
System.out.println(result);
Запрос работает, поскольку строка добавляется в базу данных, просто странно, что она возвращает -1, где в документации говорится, что она вернет только 0 или строку (как я был исправлен).
UPDATE:
Запуск этого в результатах Management Studio с помощью команды "Команда успешно завершена".
IF NOT EXISTS (SELECT * FROM animals WHERE animal_name = 'a')
INSERT INTO animals(animal_name, animal_desc, species_id) VALUES ('a', 'a', 1)
Это должно означать, что метод должен возвращать 0, потому что он ничего не возвращает, правильно?