try (var con = builder.getConnection();
var stm = con.prepareStatement(properties.getProperty("insertRecipe"))) {
//id autoincrement
stm.setString(1, recipe.getRecipeName());
stm.setInt(2, recipe.getCookingTime());
stm.setInt(3, recipe.getCalorificValue());
int rows = stm.executeUpdate(); // ВОЗВРАЩАЕТ 1
ResultSet result = stm.getGeneratedKeys();
if (result.next()) { // FALSE
recipe.setRecipeId((int) result.getLong(1));
}
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
добрый вечер, есть следующий метод, он вставляет 1 запись в бд, stm.executeUpdate() отрабатывает корректно, запись вставляет (проверено), но вызов result.next() вовращает false. Я не понима как такое возможно, что сделать, чтобы он нормальной айдишник вернул?
попробуй другой подход. типа этого https://stackoverflow.com/questions/3552260/plsql-jdbc-how-to-get-last-row-id/3552353#3552353
Обсуждают сегодня