Использование функции 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

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