Spring DriverManagerDataSource vs apache BasicDataSource

В чем разница между Spring DriverManagerDataSource и apache BasicDataSource? Какой из них предпочтительнее и в каких ситуациях?

Спасибо.

Ответы

Ответ 1

В соответствии с документацией Spring

Этот класс не является реальным пулом подключений; он фактически не объединяет Connections. Он просто служит простой заменой полномасштабного пула соединений, реализующего один и тот же стандартный интерфейс, но создающего новые соединения при каждом вызове.

Если вам нужен "реальный" пул соединений за пределами контейнера J2EE, рассмотрите Apache Jakarta Commons DBCP или C3P0. Commons DBCP BasicDataSource и C3P0 ComboPooledDataSource - это полный пул соединений beans, поддерживающий те же базовые свойства, что и этот класс, и специальные настройки (такие как минимальный/максимальный размер пула и т.д.).

Также читайте Управление подключениями к базе данных

При использовании уровня Spring JDBC вы получаете источник данных из JNDI или настраиваете свою собственную с реализацией пула соединений, предоставляемой третьей стороной. Популярные реализации - это Apache Jakarta Commons DBCP и C3P0. Реализации в дистрибутиве Spring предназначены только для целей тестирования и не обеспечивают объединение.

Ответ 2

Из Spring API DriverManagerDataSource:

Этот класс не является реальным пулом подключений; это на самом деле бассейн. Это просто простая замена для полномасштабного пул соединений, реализующий один и тот же стандартный интерфейс, но создающий новый Соединения при каждом вызове.

Другими словами, это может быть нормально для тестов, но в реальном приложении используется Apache DBCP