Как мне вернуть последний первичный ключ последнего добавленного элемента в java?
-
06-09-2019 - |
Вопрос
Имейте таблицу ссылок (или ref), которая имеет двойной первичный ключ.Необходимо вернуть последний первичный ключ, который был автоматически сгенерирован из текущего соединения в выбранной таблице.Это на языке Java.База данных находится в MS Access, если это имеет значение.Извините за поспешное описание, но наша команда работает в сжатые сроки.
Любые ссылки или предложения будут с радостью оценены.
Редактировать:
База данных заполняется с использованием SQL.Мы вводим данные для одной формы, но мы не знаем автоматически сгенерированный номер.Нужно выяснить, что это было, чтобы это можно было занести в таблицу ссылок.Мы знаем только половину составного ключа, вот почему нам нужен второй.
Редактировать:
Это лучший ответ на данный момент (кажется, не могу комментировать).Я получаю следующую ошибку..."Исключение в потоке "AWT-EventQueue-0" java.lang.Исключение UnsupportedOperationException"
Есть какой-нибудь совет?
Решение
Вам нужно сделать две вещи.Во-первых, вам нужно будет передать дополнительный параметр при подготовке вашего заявления или выполнении вашего заявления.Если вы используете подготовленные инструкции, выполните следующие действия:
stmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
Если вы не используете подготовленные инструкции, выполните следующие действия при вызове executeUpdate():
stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
После того, как вы выполните свое заявление, вы можете вызвать
ResultSet rs = stmt.getGeneratedKeys()
Это даст вам результирующий набор, содержащий любой из сгенерированных ключей.
Я не пробовал этот подход с Access, но он прекрасно работает со столбцами идентификации SQL Server.
Другие советы
Оператор.getGeneratedKeys() должен сделать свое дело...
Поместите оба значения для составного ключа в массив Object с двумя элементами и верните это.
В качестве альтернативы поместите новый составной ключ в экземпляр, который вы только что сохранили, и верните его.