Пул соединений сам по себе не требует, чтобы соединения были получены JNDI. Вы также можете просто установить и использовать пул соединений независимо от JNDI. Предположим, что вы хотите использовать C3P0 , который является одним из лучших пулов соединений, тогда вы можете найти «сырые» подробности установки без JNDI в этого урока .
Вот выдержка из учебника:
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );
cpds.setUser("swaldman");
cpds.setPassword("test-password");
Создайте источник данных один раз во время запуска приложения и сохраните его где-нибудь в контексте. Затем соединение может быть установлено и использовано следующим образом:
Connection connection = null;
// ...
try {
connection = cpds.getConnection();
// ...
} finally {
// ...
if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
}
Да, закрытие finally все еще обязательно, иначе пул соединений не сможет вернуть соединение в пул для повторного использования в будущем, и у него закончатся соединения.