Java JDBC - Массовая вставка нескольких подготовленных операторов

Используя JDBC (Oracle), мне нужно вставить около тысячи строк в каждую из двух таблиц. Примерно так:

"INSERT INTO TABLE_A (A_ID, A_NAME, A_LAST_NAME) VALUES (MY_SEQUENCE.NEXTVAL, ?, ?)";
"INSERT INTO TABLE_B (B_ID, B_DESCRIPTION) VALUES (MY_SEQUENCE.CURRVAL, ?)";

Проблема в том, что обе таблицы связаны общей последовательностью, так что порядок операторов важно.

Это было бы довольно просто, если бы у меня была только одна таблица. В этом случае я использовал код:

String insert = "Insert into TABLE_A(A_ID, A_NAME, A_LAST_NAME) values(MY_SEQUENCE.NEXTVAL, ?, ?)";
conn.setAutoCommit(false);
PreparedStatement ps = conn.prepareStatement(insert);
for(MyObject obj : myCollection) {
    ps.setString(1, obj.getName());
    ps.setString(2, obj.getLastName());
    ps.addBatch();
}
ps.executeBatch();
conn.commit();
ps.close();

Но этот подход может работать только с одним подготовленным статусом и, следовательно, только с одной вставкой. Как я могу предоставить решение этой проблемы?

13
задан dee-see 25 August 2011 в 18:56
поделиться