Mysql
 sql >> база данни >  >> RDS >> Mysql

Затваряне на JDBC връзки в пула

Когато използвате пул за връзки, трябва ли да затворите връзката в края? Ако е така, не се ли губи целта на обединяването? И ако не, как DataSource знае кога определен екземпляр на Connection е освободен и може да бъде използван повторно? Малко съм объркан по този въпрос, всички насоки се оценяват.

Да, със сигурност трябва да затворите и обединената връзка. Това всъщност е обвивка около действителната връзка. Под капаците ще освободи действителната връзка обратно към басейна. По-нататък от пула зависи да реши дали действителната връзка ще всъщност да бъде затворен или използван повторно за нов getConnection() обадете се. Така че, независимо дали използвате пул за връзки или не, трябва винаги затворете всички JDBC ресурси в обратен ред в finally блок на try блокирайте там, където сте ги придобили. В Java 7 това може да бъде допълнително опростено, като се използва try-with-resources изявление.

Дали следният метод е нещо близко до стандартното? Изглежда като опит за получаване на връзка от пула и ако DataSource не може да бъде установен, използвайте старомоден DriverManager. Дори не сме сигурни коя част се изпълнява по време на изпълнение. Повтаряйки въпроса по-горе, трябва ли да затворите връзката, която излиза от такъв метод?

Примерът е доста плашещ. Просто трябва да потърсите/инициализирате DataSource само веднъж по време на стартиране на приложението в някакъв конструктор / инициализация на DB конфигурационен клас за цялото приложение. След това просто извикайте getConnection() на един и същ източник на данни през останалата част от живота на приложението. Няма нужда от синхронизация или проверки за нула.

Вижте също:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да променя времето за изчакване на Mysql връзка по подразбиране при свързване чрез python?

  2. Как да проверите размера на база данни в MySQL

  3. Как да инсталирате MySQL 8 на Windows

  4. Как да се свържете с MySQL от командния ред

  5. Наличие както на колона за време, създадена и последно актуализирана в MySQL 4.0