На основе поддержки других авторов я попытался исключить DBCP и напрямую использовать драйвер JDBC MySQL (Connector / J 5.0.4). Я не смог этого сделать.
Похоже, что хотя драйвер и является основой для объединения, он не обеспечивает самое важное: реальный пул (для этого пригодился исходный код). Это предоставлено серверу приложений для предоставления этой части.
Я еще раз взглянул на документацию JDBC 3.0 (у меня есть печатная копия чего-то с пометкой «Глава 11 Пулы соединений», я точно не знаю, откуда она взялась), и я вижу, что драйвер MySQL следует документу JDBC.
Когда я смотрю на DBCP, это решение начинает иметь смысл. Хорошее управление бассейном предоставляет много возможностей. Например, когда вы удаляете неиспользуемое соединение? какие соединения вы чистите? Есть ли жесткое или мягкое ограничение на максимальное количество соединений в пуле? Вы должны проверить соединение на "живость", прежде чем дать его вызывающему абоненту? и т.д.
Резюме: если вы работаете с автономным Java-приложением, вам нужно использовать библиотеку пула соединений. Библиотеки пула подключений по-прежнему актуальны.