Me gustaría utilizar declaraciones preparadas, para many reasons. Pero, me gustaría crear un método que tiene el siguiente aspecto:¿Por qué necesito una conexión para crear Declaracionesprecisas?
/* This opens a connection, executes the query, and closes the connection */
public static void executeNonQuery(String queryString);
En otras palabras, quiero que mi lógica de la aplicación a sólo tienen que formular las consultas y se alimentan en los parámetros, pero no se ocupan de las conexiones & declaraciones . Sin embargo, las declaraciones preparadas se crean a partir de un objeto de conexión, por lo que actualmente me veo forzado a preparar la cadena de consulta utilizando String.format() - butt feo y peligroso.
¿Hay alguna manera de hacer lo que quiero sin utilizar String.format()?
Su método executeNonQuery tiene un problema: obtener una conexión. Si crea uno cada vez que se ejecuta este método, tendrá problemas de ejecución una y otra vez (crear y cerrar conexiones es caro). Si esto está encapsulado en un objeto que crea una conexión solo en la primera llamada, tendrá un problema: ¿cuándo cerrarlo? Tal vez basado en el tiempo? Si usa campos estáticos para almacenar en caché, tenga cuidado de que esto no se recopile. Sin embargo, tenga cuidado con las llamadas concurrentes, al almacenar en caché una conexión: sin un mecanismo de bloqueo (como sincrónico), podría crear muchas conexiones. –