A conexão com o banco de dados deve ser aberta somente quando for necessária e fechada após fazer todo o trabalho necessário com ela. Exemplo de código:
-
Antes do 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
Mas como abrir manualmente uma conexão de banco de dados é muito caro, é altamente recomendável usar um conjunto de conexões do banco de dados , representado em Java com
DataSource
interface. Isso cuidará das conexões físicas do banco de dados para você e quando você fechar (ou seja, chamando Connection#close
), a conexão física do banco de dados estará apenas no modo SLEEP e ainda estará aberta. Perguntas/Respostas relacionadas:
Algumas ferramentas para lidar com o pool de conexões de banco de dados: