Vorrei utilizzare istruzioni preparate, per many reasons. Ma, vorrei creare un metodo che assomiglia a questo:Perché ho bisogno di una connessione per creare PreparedStatements?
/* This opens a connection, executes the query, and closes the connection */
public static void executeNonQuery(String queryString);
In altre parole, voglio la mia logica dell'applicazione di avere solo per formulare le domande e nutrire nei parametri, ma non trattare con le connessioni & dichiarazioni . Tuttavia, PreparedStatements viene creato da un oggetto di connessione, quindi sono attualmente costretto a preparare la stringa di query usando String.format() - brutto e pericoloso.
C'è un modo per fare ciò che voglio senza utilizzare String.format()?
Il metodo executeNonQuery ha un problema: ottenere una connessione. Se ne crei uno ogni volta che viene eseguito questo metodo, i problemi di prestazioni si ripetono continuamente (la creazione e la chiusura delle connessioni sono costose). Se questo è incapsulato su un oggetto che crea una connessione solo alla prima chiamata, si avrà un problema: quando chiuderlo? Forse in base al tempo? Se si utilizzano i campi statici nella cache, fare attenzione che questo non venga raccolto. Attenzione alle chiamate simultanee, quando si effettua il caching di una connessione, tuttavia: senza un meccanismo di blocco (come syncrhonized), è possibile creare molte connessioni. –