Nous avons une application Java J2EE qui utilisait des appels de service Web individuels pour chaque insertion/mise à jour de ligne de base de données. Cela s'est avéré être trop lent. Ils m'ont amené à "rapidement" le réparer. Je prévois de convertir tous les appels de service Web en JDBC simple. Pour ce faire, je dois obtenir une connexion JDBC à partir du pool, puis l'utiliser dans plusieurs méthodes différentes. J'ai besoin d'utiliser la même connexion JDBC dans plusieurs DAO pour tout enchaîner dans une seule transaction de base de données. Je peux passer explicitement la connexion JDBC à chaque DAO qui en a besoin, mais cela nécessiterait de changer BEAUCOUP de signatures de méthodes, plus beaucoup de tests unitaires (ce qui va à l'encontre de la partie "rapidement").Comment faire pour contourner la connexion JDBC sans utiliser Spring/JPA/Hibernate
J'essaye de trouver un bon moyen de mettre la connexion JDBC quelque part et ensuite de la saisir dans les méthodes qui en ont besoin sans avoir à la passer partout. Nous ne pouvons pas utiliser Spring, JPA ou Hibernate sur ce projet car l'équipe de support ne prend pas en charge ces technologies. Je peux mettre la connexion JDBC dans un EJB, mais je ne suis pas sûr de sa fiabilité. Je pourrais créer un singleton personnalisé pour gérer les connexions de base de données pour chaque utilisateur (session?), Mais je devrais faire attention à la sécurité des threads. Si quelqu'un a déjà essayé de faire quelque chose comme ça, j'apprécierais quelques conseils.
Cela pourrait très bien fonctionner pour nous. Y a-t-il des problèmes de performance majeurs qui le font de cette façon? – Shane
ThreadLocal a été une cible d'amélioration des performances de Sun pendant un certain temps. Comparé aux opérations de la base de données, il s'agira d'une erreur d'arrondi. – sblundy