Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Uma conexão de banco de dados deve permanecer aberta o tempo todo ou ser aberta apenas quando necessário?


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: