В общем, проблема в том что при SQL запросе на update записи не возвращаются generated keys, хотя запись обновляется, с insert все работает корректно, а вот с update все ломается, кто-нибудь сталкивался с такой проблемой.
UPDATE метод rs.next() всегда возвращает false
int user_id = 0;
ResultSet rs = null;
try {
dbConnection = getDBConnection();
preparedStatement = dbConnection.prepareStatement(User.UPDATE_USER, new String[]{User.ID});
preparedStatement.setString(1, password);
preparedStatement.setString(2, username);
preparedStatement.executeUpdate();
rs = preparedStatement.getGeneratedKeys();
if (rs.next()) {
user_id = rs.getInt(1);
}
} finally {
if (rs != null)
rs.close();
preparedStatement.close();
dbConnection.close();
}
Сам sql код
static final String UPDATE_USER = "UPDATE " + TABLE_NAME
+ " SET " + PASSWORD + " = ?"
+ " WHERE "+ USERNAME +" = ?;";
Согласно документации:
Creates a default PreparedStatement object capable of returning the auto-generated keys designated by the given array. This array contains the names of the columns in the target table that contain the auto-generated keys that should be returned. The driver will ignore the array if the SQL statement is not an INSERT statement, or an SQL statement able to return auto-generated keys (the list of such statements is vendor-specific).
То есть, драйвер проигнорирует список автогенерированных ключей, если запрос не является INSERT
операцией
Как меняется крипторынок и к чему готовиться владельцам криптообменников
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
У меня есть две таблицы stock и productТаблицу я инициализирую через stock, но фильтр мне нужно сделать через product
Этот вопрос является развитием темы Java: обойти необходимость невозможного изменения значения локальной переменной извнеИз ответов на вопрос...
Какую среду разработки/движок и технологии посоветуете?