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

Правилно ли използвам Java PooledConnections?

Това не е правилният начин. Източникът на данни трябва да се управлява от какъвто и да е контейнер, в който изпълнявате приложението. MysqlConnectionPoolDataSource ене пул за връзки. Това е просто конкретна реализация на javax.sql.DataSource интерфейс. Обикновено го дефинирате в контекста на JNDI и го получавате от там. Също така самият MySQL посочва всичко това изрично в тяхната документация .

Сега как да го използвате зависи от целта на приложението. Ако това е уеб приложение, тогава трябва да се обърнете към документацията за JNDI ресурси на въпросния servletcontainer/appserver. Ако е например Tomcat, тогава можете да го намерите тук . Ако използвате клиентско приложение - за което силно бих поставил под въпрос стойността на пула за връзки -, тогава трябва да потърсите рамка за обединяване на връзки, която може да използва предоставения от MySQL източник на данни за връзки, като напр. C3P0 .

Другият проблем с кода, който сте публикували е, че PooledConnection#getConnection() ще върне основния връзка, която по този начин ене обединена връзка. Извикването на close към него няма да върне връзката към пула, а просто наистина ще го затвори. Пулът трябва да създава нова връзка всеки път.

След това историята за безопасността на нишките, която зависи от истинската въпросната рамка за обединяване на връзки. C3P0 е доказал своята стабилност от години, не се притеснявате за това, стига да пишете JDBC код според стандартния идиом, т.е. да използвате само JDBC интерфейсите и придобивати затворете всички ресурси (Connection , Statement и ResultSet ) във възможно най-кратък обхват.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете от същата таблица като Вмъкване или Актуализация

  2. Отмяна на неуспешна миграция на Rails

  3. Ъгъл на базата данни:Ръководство за начинаещи за системите за съхранение на Mysql

  4. загуба на връзка с mysql при използване на mysqldump дори с параметър max_allowed_packet

  5. mysql промяна innodb_large_prefix