Java JDBC - Plusieurs préparé instruction bulk insert

À l'aide de JDBC (Oracle) j'ai besoin d'insérer sur les milliers de lignes dans chacun des deux tableaux. Quelque chose comme ceci:

"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, ?)";

Le problème est que les deux tables sont reliées par séquence commune, afin que l'ordre des instructions est important.

Il serait assez facile si j'avais un seul tableau. Dans ce cas, j'ai utilisé le code:

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();

Mais cette approche ne peut fonctionner qu'avec un prêt de tresorerie et donc avec une seule plaquette. Comment puis-je fournir une solution pour ce problème?

OriginalL'auteur agav | 2011-08-25