Spring имеет свои собственные: org.springframework.jdbc.datasource.DriverManagerDataSource
Класс org.springframework.jdbc.datasource.DriverManagerDataSource
реализует интерфейс DataSource
, но является НЕ пулом соединений, это просто удобный класс, который можно использовать во время развитие вместо реального пула (но он создает новое соединение при каждом вызове). Я бы предложил прочитать его javadoc .
У меня есть трехуровневое приложение JPA / Hibernate, которому требуется пул соединений, но, похоже, все это поддерживают ....
Если вы используете сервер приложений, предпочтите пул соединений вашего сервера приложений.
Если нет, то DBCP, C3P0 - наиболее распространенные решения. Я бы использовал бы C3P0 (который фактически связан с Hibernate сейчас вместо DBCP), я столкнулся с некоторыми проблемами взаимоблокировки с DBPC при высокой нагрузке, а не с C3P0, поэтому я предпочитаю C3P0.
Возможно, стоит отметить, что DBCP был воскрешен совсем недавно после очень длительного периода бездействия (в то время как C3P0 неактивен) и, следовательно, может поправиться.
Другие игроки включают Proxool и BoneCP (недавний новый конкурент). Последнее выглядит интересно, но у меня нет никакого практического опыта с этим.
В любом случае, как правило, перед запуском в производство необходимо выполнить тесты на надежность.
Смотри также