Лучший способ управлять соединениями с БД без JNDI - PullRequest
1 голос
/ 28 сентября 2010

У меня есть веб-сайт, на котором в настоящее время я получаю 1000 просмотров.Я ожидаю, что в будущем он будет составлять около 30 тыс. В день.Теперь проблема для меня в управлении соединениями с БД.В настоящее время я просто подключаюсь к БД прямо из Java-программы.Я знаю, что это худший дизайн в мире.Но пока я так написал.Я планирую управлять пулами соединений с помощью JNDI.Но проблема в том, что мой хостинг-провайдер не поддерживает JNDI.

Может кто-нибудь подсказать мне, как управлять соединениями с БД без jndi?

1 Ответ

3 голосов
/ 28 сентября 2010

Пул соединений сам по себе не требует, чтобы соединения были получены 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 все еще обязательно, иначе пул соединений не сможет вернуть соединение в пул для повторного использования в будущем, и у него закончатся соединения.

...