Использование функции JDBC getGeneratedKeys в многопоточной средеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Использование функции JDBC getGeneratedKeys в многопоточной среде

Сообщение Anonymous »

У меня есть веб-приложение, которое использует значение AUTO INCREMENT одной таблицы для вставки в другие таблицы. Мне нужно убедиться, что значение, считанное для столбца автоматического приращения, правильное при наличии потенциальных одновременных операторов INSERT в этой таблице. Поскольку у каждого потока будет свое собственное соединение (из пула контейнеров), мне все равно придется помещать код в транзакцию?
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "INSERT INTO KYC_RECORD ....";
int autoIncKeyFromApi = -1;

Connection connection = ....

try {
connection.setAutoCommit(false);
ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.setString( ... );
ps.executeUpdate();
rs = ps.getGeneratedKeys();
if (rs.next()) {
autoIncKeyFromApi = rs.getInt(1);
} else {
// throw an exception from here
}
connection.commit();
}


Подробнее здесь: https://stackoverflow.com/questions/480 ... nvironment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»