sql >> Base de Datos >  >> RDS >> Mysql

¿Debe una conexión de base de datos permanecer abierta todo el tiempo o solo abrirse cuando sea necesario?

La conexión de la base de datos debe abrirse solo cuando sea necesario y cerrarse después de hacer todo el trabajo necesario con ella. Ejemplo de código:

  • Antes de 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
    

Pero dado que abrir manualmente una conexión a la base de datos es demasiado costoso, se recomienda enfáticamente usar un grupo de conexiones de base de datos , representado en Java con DataSource interfaz. Esto manejará las conexiones físicas de la base de datos por usted y cuando cierre (es decir, llamar a Connection#close ), la conexión de la base de datos física solo estará en modo SUSPENSIÓN y seguirá abierta.

Preguntas y respuestas relacionadas:

Algunas herramientas para manejar la agrupación de conexiones de bases de datos: