Если драйвер JDBC поддерживает это, вы также можете просто использовать для этого оператор # getGeneratedKeys ()
.
String sql = "INSERT INTO tbl (col) VALUES (?)";
preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
preparedStatement.setString(1, col);
preparedStatement.executeUpdate();
generatedKeys = preparedStatement.getGeneratedKeys();
if (generatedKeys.next()) {
long id = generatedKeys.getLong(1);
} else {
// Throw exception?
}
Если вы используете MySQL, вы можете сделать
select last_insert_id();
Если используете MS SQL
select scope_identity();
Для H2, я считаю, что это
CALL SCOPE_IDENTITY();
, но у меня нет опыта работы с этой БД