Диаграммы / Инфографика для изучения компьютерных наук / программирования [закрыто]

При использовании пула соединений следует закрыть соединение в конце? Если да, то не цель объединения потерянных? А если нет, то как DataSource знает, когда конкретный экземпляр Connection освобождается и может быть повторно использован? Я немного запутался в этом, любые указатели оценили.

blockquote>

Да, конечно, вам также нужно закрыть объединенное соединение. Фактически это оболочка вокруг фактического соединения. Он под крышкой отпускает фактическое соединение обратно в бассейн. Далее в пул можно решить, будет ли фактическое соединение фактически закрыто или повторно использоваться для нового вызова getConnection(). Таким образом, независимо от того, используете ли вы пул соединений или нет, вы всегда должны закрыть все ресурсы JDBC в обратном порядке в блоке finally блока try, где вы их приобрели. В Java 7 это может быть дополнительно упрощено с помощью инструкции try-with-resources .


Является ли следующий метод чем-то близким к стандарту? Попытка получить соединение из пула, и если DataSource не может быть установлен, используйте старомодный DriverManager. Мы даже не уверены, какая часть будет выполняться во время выполнения. Повторяя вопрос выше, следует ли закрыть соединение, исходящее из такого метода?

blockquote>

Пример довольно пугающий. Вам просто нужно искать / инициализировать DataSource только один раз во время запуска приложения в каком-либо конструкторе / инициализации класса конфигурации DB базы приложений. Затем просто вызовите getConnection() на один и тот же источник данных на протяжении всей жизни приложения. Нет необходимости в синхронизации или nullchecks.

См. Также:

1
задан the Tin Man 1 December 2012 в 23:26
поделиться