Databasanslutningen måste endast öppnas när den behövs och stängas efter att ha utfört alla nödvändiga jobb med den. Kodexempel:
-
Före Java 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
Men eftersom det är för dyrt att manuellt öppna en databasanslutning, rekommenderas det starkt att använda en databasanslutningspool
, representerad i Java med DataSource
gränssnitt. Detta kommer att hantera de fysiska databasanslutningarna åt dig och när du stänger det (dvs. anropar Connection#close
), kommer den fysiska databasanslutningen bara att vara i SLEEP-läge och fortfarande vara öppen.
Relaterad Q/A:
Några verktyg för att hantera databasanslutningspooling: