Есть ли способ получить идентификатор автоинкремента из подготовленного оператора

Есть ли способ получить автоматически сгенерированный ключ из запроса БД при использовании Java-запроса с подготовленными операторами.

Например, я знаю, что AutoGeneratedKeys может работать следующим образом.

stmt = conn.createStatement();

stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
    ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
    auto_id = rs.getInt(1);
} 

Тем не мение. Что делать, если я хочу сделать вставку с подготовленным заявлением.

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql);

//this is an error
stmt.executeUpdate(Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
    //this is an error since the above is an error
    ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
    auto_id = rs.getInt(1);
} 

Есть ли способ сделать это, о котором я не знаю. Из javadoc кажется, что PreparedStatements не может вернуть автоматически сгенерированный идентификатор.

Ответы на вопрос(5)

Ваш ответ на вопрос