Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    18

    [JAVA] Chiusura connessioni al DB

    Ciao a tutti,
    ho un dubbio sull'utilizzo di ResultSet e CachedRowSet. Cerco di spiegarvi mostrandovi il codice incriminato:

    codice:
    public CachedRowSet executeQuery(String query) {
    		Connection connection = getConnection();
    		CachedRowSet crset;	
    		crset = new CachedRowSetImpl();
    		PreparedStatement statement = null;
    		try {
    			statement = connection.prepareStatement(query);
    			......
    			crset.populate(statement.executeQuery());
    		} catch (SQLException e) {
    			.....
    		} finally {
    			try {
    				if (statement != null) {
    					statement.close();
    				}
    				if (connection != null) {
    					connection.close();
    				}
    			} catch (SQLException e) {
    				....
    			}
    		}
    		return crset;
    	}
    
    String query = "Select ...";
    ResultSet rs = executeQuery(query);
    Nel meto executeQuery chiudo la connessione al db e lo statement. Il mio dubbio è il seguente: quando richiamo il metodo e utilizzo il ResultSet per immagazzinare il CachedRowSet (rowset disconnesso) si attiva una nuova connessione al DB e quindi devo ciudere il ResultSet con rs.close()?

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non so quanto sia consigliato chiudere e riaprire ogni volta la connessione con il DB. Questo dipende dal tipo di applicazione che stai costruendo.

    La documentazione di ResultSet, però, a proposito del metodo close() è molto chiara:

    Note: A ResultSet object is automatically closed by the Statement object that generated it when that Statement object is closed, re-executed, or is used to retrieve the next result from a sequence of multiple results.
    Quindi, se effettui la close() dello Statement che ha generato il ResultSet, quest'ultimo viene automaticamente chiuso.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    18
    Ok.. Ma se i risultati contenuti in una CachedRowSet li metto in una ResultSet riattivo la connessione?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.