Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
07 Май 2023
2 мин
394

Получение ID вставленной записи в JDBC

В работе с базами данных часто возникает ситуация, когда после вставки новой записи в таблицу требуется получить её идентификатор. Это может быть

В работе с базами данных часто возникает ситуация, когда после вставки новой записи в таблицу требуется получить её идентификатор. Это может быть полезно, например, для ссылки на только что созданную запись из другой таблицы или для выполнения дальнейших операций с этой записью. В примере ниже рассматривается вставка записи в таблицу Users базы данных Microsoft SQL Server:

String query = "INSERT INTO Users (name, email) VALUES (?, ?)";
PreparedStatement statement = connection.prepareStatement(query);
statement.setString(1, "John Doe");
statement.setString(2, "johndoe@example.com");
int affectedRows = statement.executeUpdate();

В этом случае, после выполнения запроса, можно получить количество затронутых записей, но не идентификатор вставленной записи.

Получение ID вставленной записи

Для решения этой задачи в JDBC предусмотрен специальный метод prepareStatement, который принимает дополнительный параметр – флаг, указывающий, что требуется вернуть сгенерированные ключи.

String query = "INSERT INTO Users (name, email) VALUES (?, ?)";
PreparedStatement statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
statement.setString(1, "John Doe");
statement.setString(2, "johndoe@example.com");
int affectedRows = statement.executeUpdate();

if (affectedRows > 0) {
    try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
        if (generatedKeys.next()) {
            long id = generatedKeys.getLong(1);
            System.out.println("Inserted record's ID: " + id);
        }
    }
}

В этом примере после вставки записи вызывается метод getGeneratedKeys(), который возвращает ResultSet с сгенерированными ключами. Затем из этого ResultSet можно извлечь идентификатор вставленной записи.

Заключение

Таким образом, JDBC предоставляет удобные инструменты для работы с базами данных, включая получение идентификаторов вставленных записей. Это позволяет эффективно решать задачи, связанные с обработкой данных и управлением связями между таблицами.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий