Ответ 1
BasicDataSource, так как javadoc говорит, что это универсальный шоппинг для удовлетворения основных потребностей. Он имеет все необходимое. Он создает внутренне источник PoolableDataSource и ObjectPool.
PoolingDataSource реализует интерфейс DataSource с помощью предоставленного ObjectPool. PoolingDatasource заботится о том, что связано с подключением (кастинг, проверка достоверности, настройки свойств и т.д.), А ObjectPool заботится о том, чтобы удерживать и считать этот объект любого типа. Это
Итак Я должен использовать BasicDataSource. Если вам нужно что-то особенное, возможно, вы можете использовать PoolingDatasource с другой реализацией ObjectPool. Но я думаю, что это будет редкий случай.