ant ha scritto:
grazie per l aiuto, volevo chiederti una cosa riguardo la connessione al database diciamo per una questione di efficienza... va bene che mi connetta al db quando si accede all'applicazione, poi si chiude la connessione quando si esce dall'applicazione?
oppure devo connettermi ogni volta,cioè per inserire qualcosa nel db mi connetto uso PreparedStatement e poi chiudo la connessione, voglio cancellare qualcosa nel db quindi riapro la connessione cancello e richiudo ecc....
(nota: parliamo ovviamente dell'uso diretto di JDBC)
Innanzitutto dipende da
quante java.sql.Connection ti servono. Nelle applicazioni web server-side, che possono ricevere molte request concorrenti, generalmente si tende ad usare dei "connection pool", un insieme di Connection preistanziate che vengono riusate/riciclate continuamente. Mentre invece nelle applicazioni "desktop" le cose possono essere ben diverse e potrebbe bastare anche una sola Connection.
Tieni presente che creare una Connection è una operazione potenzialmente e generalmente "costosa", che richiede risorse. Su certi DBMS di un certo livello (es. Oracle) ogni connessione porta alla creazione di un nuovo processo nel sistema, che richiede quindi memoria, CPU, file, ecc...
Se poi la macchina dove risiede il DBMS è sulla rete (anche locale) ... ancora peggio perché ci sono tutte le risorse e le tempistiche relative al networking.
Pertanto le Connection sono da creare e tenere in modo molto oculato. Creare una Connection solo per eseguire 1 statement, poi chiudere la Connection, crearne un'altra, ecc... non è certo la scelta più oculata che si possa fare ma bisognerebbe anche vedere ogni quanto devi eseguire statement e per cosa.