Tenemos una aplicación Java J2EE que utilizaba llamadas de servicios web individuales para cada inserción/actualización de fila de la base de datos. Eso resultó ser MUY lento. Me han traído para "arreglarlo" rápidamente. Planeo convertir todas las llamadas al servicio web a JDBC simple. Para hacer eso, necesito obtener una conexión JDBC del grupo y luego usarlo en múltiples métodos diferentes. Necesito usar la misma conexión JDBC en varios DAO para unir todo en una sola transacción de base de datos. Puedo pasar explícitamente la conexión JDBC a cada DAO que lo necesite, pero eso requeriría que cambie MUCHAS firmas de métodos, además de MUCHAS pruebas de unidades (que van en contra de la parte "rápida").Cómo pasar la conexión JDBC sin utilizar Spring/JPA/Hibernate
Estoy tratando de encontrar una buena manera de poner la conexión JDBC en algún lugar y luego simplemente agarrarla en los métodos que la necesitan sin tener que pasarla explícitamente a todas partes. No podemos usar Spring, JPA o Hibernate en este proyecto porque el equipo de soporte no admitirá esas tecnologías. Puedo poner la conexión JDBC en un EJB, pero no estoy seguro de qué tan confiable sería. Podría crear un Singleton personalizado para administrar las conexiones de la base de datos para cada usuario (¿sesión?), Pero tendría que tener cuidado con la seguridad del hilo. Si alguien ha intentado hacer algo así antes, agradecería algunos consejos.
Esto podría funcionar muy bien para nosotros. ¿Hay algún problema importante de rendimiento al hacerlo de esta manera? – Shane
ThreadLocal ha sido un objetivo de mejoras de rendimiento de Sun por un tiempo. Comparado con las operaciones de DB, será un error de redondeo. – sblundy