Zamykanie połączenia z bazą danych, aby uniknąć wycieku pamięci
Kontynuuj pytanie doZamykanie połączeń z bazą danych w Javie
Connection conn = DriverManager.getConnection(
"jdbc:somejdbcvendor:other data needed by some jdbc vendor",
"myLogin",
"myPassword" );
Statement stmt = conn.createStatement();
try {
stmt.executeUpdate( "INSERT INTO MyTable( name ) VALUES ( 'my name' ) " );
} finally {
//It's important to close the statement when you are done with it
stmt.close();
}
conn.close();
Wiem, że conn.close () jest konieczne, ale nie wiem dlaczego. Czy garbage collector nie zwolni obiektu połączenia (a wraz z nim zwolni każdy przechowywany w nim program obsługi, który wskazuje bazę danych), po zakończeniu wywołania metody?