Я пытаюсь сохранить строку в таблице базы данных DB2, где основным ключом является автоинкремент. Это отлично работает, но у меня возникли проблемы с тем, чтобы вернуть значение первичного ключа для дальнейшей обработки после успешной вставки строки. Как вы это достигаете? @JdbcInsert возвращает количество строк, которые были вставлены ...Получение значения автоинкремента при использовании @JdbcInsert
ответ
Поскольку, похоже, для SSJS (по крайней мере, для меня) это не похоже, я переместил эту часть логики с моего контроллера SSJS для Java-помощника, который я создал для связанных с JDBC задач. A Statement способен передавать сгенерированные ключи (используя метод executeUpdate()). Поэтому я все еще создаю свое соединение через @JdbcGetConnection, но потом передаю его в bean-компонент. Это интересная часть боба:
/**
* SQL contains the INSERT Statement
*/
public int executeUpdate(Connection conn, String SQL){
int returnVal;
Statement stmt = conn.createStatement();
stmt.executeUpdate(SQL,
Statement.RETURN_GENERATED_KEYS);
if(!conn.getAutoCommit()) conn.commit();
ResultSet keys = stmt.getGeneratedKeys();
if(keys.next()){
returnVal = keys.getInt(1);
} else {
returnVal = -1;
}
return returnVal;
}
Если вставить несколько строк, в то время, вам необходимо изменить ключ обработки извлечения, конечно.
В новых версиях DB2 вы можете преобразовать каждую Insert в Select, чтобы получить автоматически сгенерированные ключевые столбцы. Примером может служить:
выберите keycol из финального стола (? Вставить в таблицу (col1, col2) значения (,))
keycol это имя вашей колонки идентичности
Выбрать можно выполнить с тем же @Function, что и ваши обычные запросы.
- 1. Значения DDLUtils и автоинкремента
- 2. Получение значения элемента при использовании автодизайнеровSelector
- 3. Отображать значения автоинкремента счетчика
- 4. MySQL, C++: получение идентификатора автоинкремента
- 5. получение нечетного значения при попытке заменить NA при использовании R
- 6. Получение Undefiend при использовании переменной при получении значения JSON
- 7. Получение NaN при использовании parseFloat
- 8. Получение значения null при использовании TextSelection sel = (TextSelection) dte.ActiveDocument.Selection;
- 9. Получение недопустимого значения для пути при использовании магнитов JointJS
- 10. Получение значения флажка при использовании json и $ _GET
- 11. Получение неправильного значения при использовании посредника свойств в WSO2 ESB
- 12. Получение значения индекса при использовании пользовательских Нокаут отображение
- 13. Получение нулевого значения при использовании службы wcf в C#
- 14. Получение значений возвращаемого значения из методов при использовании Moq
- 15. Получение такого же хэшированного значения при использовании BCryptPasswordEncoder
- 16. Получение значения строки из неровного массива при использовании опции строго
- 17. Получение неопределенной ошибки при использовании Request.QueryString() для получения изменяемого значения
- 18. Получение значения null при использовании метода POST в сервлет?
- 19. Получение ошибки значения при использовании OneHotEncoder и данных фитинга
- 20. php - получение значения при нажатии и использовании в sql-запросе
- 21. Не получение заданного значения переменных, при использовании указателей в C
- 22. Получение нулевого значения для базы данных при использовании AJAX
- 23. Получение пустоты вместо значения при использовании -> в PHP
- 24. Получение неправильного значения аргумента при использовании @_ в подпрограмме Perl
- 25. Получение ошибки при использовании Pandas.Series.quantile()
- 26. Получение NoSuchBeanDefinitionException при использовании SpEL
- 27. Получение twisted.defer.CancelledError при использовании Scrapy
- 28. Получение мусора при использовании getline()
- 29. получение ошибки при использовании window.location.assign()
- 30. Получение исключения при использовании NotesCalendar.getNewInvitations
Возможно, это может помочь http://www.openntf.org/internal/home.nsf/response.xsp?action=openDocument&documentId=84B68167F84911AF862579910036B4AD&MainID=40D5F2DFF8587C688625795A006F23C4 –
Благодаря @FredrikNorling. Из того, что я могу прочитать из разговора, проблема заключалась в том, чтобы получить вставку для работы вообще. Сама вставка работает, она просто не возвращает сгенерированное значение ключа, вместо этого она возвращает количество вставленных строк. Всякий раз, когда этот новичок - период блокировки здесь (должен ждать 8 часов) закончился, я отправлю свой подход в качестве ответа, поскольку он слишком длинный для комментария ... –
Что я мог прочитать, там был добавлен один дополнительный параметр , и это был столбец id, который должен быть возвращен. Но я не знаю, было ли это реализовано, нет документации о нем, как я нашел. –