Połączenie z bazą danych musi być otwierane tylko wtedy, gdy jest potrzebne i zamykane po wykonaniu wszystkich niezbędnych zadań. Przykładowy kod:
-
Przed Javą 7:
Connection con = null; try { con = ... //retrieve the database connection //do your work... } catch (SQLException e) { //handle the exception } finally { try { if (con != null) { con.close(); } } catch (SQLException shouldNotHandleMe) { //... } }
-
Java 7:
try (Connection con = ...) { } catch (SQLException e) { } //no need to call Connection#close since now Connection interface extends Autocloseable
Ale ponieważ ręczne otwieranie połączenia z bazą danych jest zbyt kosztowne, zdecydowanie zaleca się użycie pula połączeń z bazą danych
, reprezentowany w Javie za pomocą DataSource
berło. To obsłuży fizyczne połączenia z bazą danych za Ciebie i po zamknięciu to (tj. wywołanie Connection#close
), fizyczne połączenie z bazą danych będzie po prostu w trybie UŚPIENIA i nadal będzie otwarte.
Powiązane pytania/odpowiedzi:
Niektóre narzędzia do obsługi puli połączeń z bazą danych: