Max_LiVi
@Max_LiVi
Начинающий Java-разработчик

Как в java при добавлении новой записи в базу данных SQLite вернуть id (автоинкремент) именно этой записи?

Моё многопользовательское приложение работает с базой данных SQLite. При создании объекта, запись добавляется в базу данных, но так как объект содержит поле id и он формируется базой данных, мне нужно возвращать id из бд при создании записи, чтобы присвоить его объекту на клиенте, чтобы постоянно не обновлять все объекты из бд. Подскажите верный способ, чтобы бд возвращала гарантировано id именно этой записи, а не последней созданной. Спасибо.
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
В том же запросе Statement или PreparedStatement используйте примерно такую конструкцию:

try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
            if (generatedKeys.next()) {
              long id =  generatedKeys.getLong(1);
            }
            else {
                throw new SQLException("No ID obtained");
            }
        }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Emphasoft Санкт-Петербург
от 150 000 до 300 000 ₽
Kotelov Санкт-Петербург
от 150 000 до 190 000 ₽
SCHNEIDER GROUP Санкт-Петербург
от 160 000 до 190 000 ₽