J'ai récemment utilisé HikariCP. Avant d'utiliser mon propre ConnectionPool pour répondre à nos besoins. Dans notre logiciel, nous devons parfois effectuer plusieurs insertions de bases de données où chaque insertion dépend d'une validation. À l'ancienne, lorsque j'utilisais mon propre pool de connexions, je définissais toujours l'objet de connexion sur setAutoCommit (false) avant de le donner à l'objet Le gestionnaire de base de données peut restaurer manuellement les données en cas de problème. Comme dans l'exemple, si l'essai intercepte des exceptions, il appelle la fonction de restauration. Lorsque je renvoie la connexion, j'appelle connection.commit() dans la connexion return et initialise autocommit à true dans le gestionnaire de pool de connexions.L'utilisation de HikariCP autocommit est-elle la même que l'utilisation automatique de la connexion Java?
Ma question: Est-ce que HikariCP utilise toujours la même procédure pour mes besoins? En d'autres termes, définissez l'autocommit sur false (j'ai lu le manuel, vous avez des paramètres autocommit pour votre configuration), puis nous annulons ou validons manuellement la transaction, puis revenons au pool. Ou y a-t-il une automatisation où nous pouvons simplement lancer une exception et HikariCP appellera automatiquement l'annulation en cas d'erreur ou appellera la validation au retour de la connexion si je ne mets pas le paramètre config pour Autocommit = false?
Merci pour toute information. Rendra
Salut Brett. Désolé pour le long temps pas de réponse. Je suis intrigué par votre affirmation selon laquelle vous déconseillez de configurer autocommit = false. Dans mon cas où j'ai des chaînes de tables qui doivent être mises à jour complètement avant qu'une transaction soit considérée comme réussie, ne serait-il pas autocommit provoquer une mise à jour partielle? Par exemple, dans mon service Web, il mettrait à jour la table 1, puis la table 2, puis la table 3. Si l'une des mises à jour de table (disons tableau 2 ou 3) échouait, je souhaiterais annuler toutes les transactions dans les tables. le même processus/service. –
Je ne dis pas n'utilise pas autoCommit = false. Je veux simplement m'assurer de commettre vos transactions, sinon HikariCP les relancera. – brettw