Le projet sur lequel je travaille utilise un accès direct aux données JDBC dans toute sa splendeur et n'utilise aucune transaction. J'ai envie d'utiliser des transactions et de simplifier la façon dont les méthodes d'accès aux données sont écrites, surtout avec quelques changements qui sont faits actuellement. Le projet existe depuis longtemps et n'est pas adapté à un cadre ORM. Il utilise aussi beaucoup de Singletons (ugh) et le démêler pour qu'il soit capable d'utiliser l'injection de dépendance serait une bonne quantité de travail et je ne pense pas que je pourrais convaincre quelqu'un que nous devrions le faire maintenant. J'aime l'interface de Spring JDBC, en particulier à travers ses SimpleJdbcTemplate
. Ma question est sur la façon d'activer certaines transactions simples (par demande de servlet) pour cela, sans avoir à définir quelque chose par programme dans chaque méthode d'accès aux données ou en utilisant le conteneur Spring IoC ou AOP. J'ai joué avec ma propre architecture qui se termine avec une interface similaire à SimpleJdbcTemplate
« s et peut utiliser une seule connexion à la demande locale et de transaction lorsque les appels seraient faits dans le cadre d'une demande (par un ServletRequestListener
avec un ThreadLocal
). Cela semble bien fonctionner, mais je pense que l'utilisation d'une bonne bibliothèque externe comme Spring JDBC serait préférable.Comment faire des transactions Spring JDBC simples en dehors du conteneur IoC?
Quelqu'un a-t-il de l'expérience?
Cela ne fonctionne pas tout à fait ce que je pensais, car cela nécessiterait des appels à l'aide du programme d'emballage TransactionTemplate à un niveau supérieur d'application plutôt que d'avoir simplement chaque appel à la JdbcTemplate utiliser une transaction de demande locale si possible. Cela devrait fonctionner correctement. – ColinD