sql >> Database >  >> RDS >> Mysql

Moet een databaseverbinding altijd open blijven of alleen worden geopend als dat nodig is?

De databaseverbinding mag alleen worden geopend wanneer dat nodig is en worden gesloten nadat u er al het nodige aan hebt gedaan. Codevoorbeeld:

  • Voorafgaand aan 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
    

Maar aangezien het handmatig openen van een databaseverbinding te duur is, wordt het ten zeerste aanbevolen om een ​​databaseverbindingspool , vertegenwoordigd in Java met DataSource koppel. Dit zal de fysieke databaseverbindingen voor u afhandelen en wanneer u sluit het (d.w.z. door Connection#close te bellen ), zal de fysieke databaseverbinding gewoon in de SLEEP-modus staan ​​en nog steeds open zijn.

Gerelateerde V/A:

Enkele hulpmiddelen voor het poolen van databaseverbindingen:



  1. Hoe kan ik detecteren dat een query voor maken, bijwerken en verwijderen succesvol is in Codeigniter?

  2. Logboekregistratie van trage query's (Slow Query-logboek) in MySQL-database inschakelen

  3. Foreign Key naar meerdere tabellen

  4. Kan geen verbinding maken met Postgresql op poort 5432