2010-05-11 3 views
1

Я просто хочу убедиться, что если я воспользуюсь следующим, я открою отдельный сеанс базы данных и не получаю то же самое (для тестирования мне нужны отдельные сеансы).JDBC, открывающий новую сессию базы данных

Connection connection = DriverManager.getConnection(URL,USER,PASSWORD); 

каждый раз, когда я выше код, я запускаю мой запрос, а затем сделать connection.close()

Так, например:

while(some condition) { 
    Connection connection = DriverManager.getConnection(URL,USER,PASSWORD); 

    //now use the connection to generate a ResultSet of some query 

    connection.close(); 
} 

Таким образом, каждая итерация цикла (каждый запрос) нуждается в собственной сессии.

Правильно ли это открытие сессий separte, сколько мне нужно (а если нет, что мне нужно добавить/изменить)? благодаря

+0

Если возможно, просто добавьте код – abson

ответ

1

The javadoc говорит:

Попытки установить соединение с данного URL базы данных

Слегка пушистого язык, и я подозреваю, что это до драйвера JDBC, но я 'Если вы делаете что-то другое, кроме открытия нового соединения, удивляйтесь.

Я полагаю, что драйвер JDBC может работать с пулом соединений под капотом, но я был бы удивлен, увидев это.

В случае с драйвером JDBC от Oracle этот будет открыть новое соединение каждый раз. Это относительно медленный процесс в Oracle, вы можете рассмотреть возможность использования пула соединений (например, Apache Commons DBCP или c3p0) для повышения производительности.

+0

Точно, этот неоднозначный язык является причиной того, что я не был уверен. – llm

+0

О, хорошо, я использую Oracle. Так что, я думаю, что мой код в порядке. – llm

Смежные вопросы