Вы сравниваете яблоки и апельсины:
- Если вы хотите, чтобы orm сравнивал производительность разных инструментов orm с одним и тем же БД.
- Если вы хотите создать пул соединений, сравните разные библиотеки пулов соединений с одним и тем же БД.
Выполнение ORM требует дополнительных усилий, поэтому оно никогда не будет таким быстрым, как прямой доступ к JDBC. Тем не менее, hibernate идет на многое (и очень успешно), чтобы минимизировать эти дополнительные издержки. С ORM вы компенсируете значительно возросшую производительность разработки на фоне относительно небольшого падения производительности.
Пул соединений является ортогональной проблемой для orm. Очевидно, что hibernate позволяет вам выбирать собственную инфраструктуру пула соединений.
Также следует помнить, что на практике часто существует довольно тесная связь между пулом соединений и транзакцией mgmt. Например, типичное приложение J2EE оставляет пул соединений с контейнером (через API источника данных JDBC) и полагается на декларативные транзакции. В этом случае соединения и транзакции управляются (приблизительно) вместе.
Если вы не находитесь в контейнере J2EE и вам не нужен orm, я бы просто сравнил C3P0, commons-pool и т. Д.