Question

Le projet je travaille utilise l'accès aux données JDBC droit dans toute sa gloire et ne boilerplate utiliser toutes les transactions. Je me sens comme l'utilisation de transactions et de simplifier les méthodes d'accès aux données de façon sont écrits est important, en particulier avec quelques modifications apportées actuellement. Le projet a été autour depuis un certain temps et ne convient pas à un cadre ORM. Il utilise aussi beaucoup de singletons (pouah) et démêlant pour le rendre 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 du printemps JDBC, en particulier par son SimpleJdbcTemplate. Ma question porte sur la façon de permettre des transactions simples (par demande servlet) pour cela, sans avoir à mettre quoi que ce soit par programme dans toutes les méthodes d'accès aux données ou à l'aide du conteneur Spring IoC ou AOP. J'ai joué avec ma propre architecture qui se termine avec une interface similaire à celle SimpleJdbcTemplate 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). Il semble bien fonctionner, mais je pense que l'aide d'une bonne bibliothèque externe comme Spring JDBC serait préférable.

Toute personne a une expérience avec cela?

Était-ce utile?

La solution

Peut-être que vous pouvez utiliser TransactionTemplate et TransactionCallback comme décrit dans Programmatic gestion des transactions?

Autres conseils

gère les transactions Spring pour vous déclarative sans que vous ayez à vous soucier de l'écriture des classes AOP. Si vous utilisez 5 ou plus JDK et Spring 2.5, vous avez encore mieux avec annotations .

Je suis en désaccord avec les transactions par Servlet. Vous devez avoir un niveau de service, qui est la partie de l'application qui connaît des unités de travail. Contrôleurs appel dans les services, qui gèrent les transactions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top