Je dois effectuer une transaction JDBC considérablement longue. Puis-je distribuer les instructions requises pour la transaction dans plusieurs méthodes, comme ceci?Distribuer des instructions pour une transaction JDBC dans plusieurs méthodes
try {
// ... Get connection
// Start transaction
connection.setAutoCommit(false);
// In every one of these methods a series of statements is executed
// All methods throw a SQLException which is caught here for rollback
// Every method takes this connection as an argument
method1(connection);
method2(connection);
// ...
methodN(connection);
// Commit all changes done inside the methods
connection.commit();
} catch (SQLException e) {
connection.rollback();
} finally {
connection.setAutoCommit(true);
connection.close();
}
Qu'est-ce qui vous fait penser que cela * ne fonctionnerait pas? –
Je ne suis pas sûr si la portée des objets Statement à l'intérieur des méthodes est liée de quelque façon que ce soit. Les instructions n'existent pas après le retour d'une méthode et je ne sais pas comment les requêtes exécutées sont "stockées" pendant l'exécution du programme. Sont-ils "liés" à l'objet Connection au lieu de l'objet Statement? –