sql >> Database teknologi >  >> RDS >> Mysql

Skal en databaseforbindelse forblive åben hele tiden eller kun åbnes, når det er nødvendigt?

Databaseforbindelsen må kun åbnes, når den er nødvendig, og lukkes efter at have udført alt det nødvendige arbejde med den. Kodeeksempel:

  • Før 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 da det er for dyrt at åbne en databaseforbindelse manuelt, anbefales det stærkt at bruge en databaseforbindelsespulje , repræsenteret i Java med DataSource interface. Dette vil håndtere de fysiske databaseforbindelser for dig, og når du lukker det (dvs. kalder Connection#close ), vil den fysiske databaseforbindelse bare være i SLEEP-tilstand og stadig være åben.

Relateret spørgsmål/svar:

Nogle værktøjer til at håndtere databaseforbindelsespooling:



  1. SQL Venstre Join

  2. SQL-udvikler 4

  3. Er der en postgres NÆRMESTE operatør?

  4. Tving indeksbrug i Oracle