- это возврат только экземпляра Singleton к соединению базы данных в течение всего времени выполнения приложения JAVA?
, возможно, вы не захотите возвращать объект Singleton
дляподключение к базе данных.Вы можете сделать это, если параллелизм в базе данных не требуется.В многопоточной среде лучше всего выбрать пул соединений.
- это концепция соединений пула потоков в целом.
Установление соединения с базой данных оченьресурсоемкий процесс и включает в себя много накладных расходов.Более того, в многопоточной среде открытие и закрытие соединения может значительно ухудшить ситуацию.
Создание JNDI на сервере и использование его в веб-приложении.
Context context=new InitialContext();
DataSource dataSource=(DataSource)
context.lookup("jdbc/test_jndi");
, поэтому, когда DataSource
использует connection pooling
, поиск возвращает соединение из пула доступных объектов соединений.Если доступного соединения нет, поиск создает новое соединение.
Connection connection=dataSource.getConnection
("testuser","testpwd");
// ...
connection.close();
Когда приложение завершает обработку базы данных, оно явно закрывает соединение.Это снова делает соединение доступным для повторного использования.Событие закрытия соединения в пуле сигнализирует модулю объединения о необходимости восстановления обратно в пул соединений.
Любой общий ресурс требует накладных расходов на обработку одновременного доступа, поэтому вы хотите уменьшить его, не всегда имея singletons
.Более того, для сокращения ресурсоемкого процесса connection pooling
является предпочтительным.