Groovy Обработка соединения с источником данных SQL, с транзакцией - PullRequest
2 голосов
/ 12 февраля 2011

Я был довольно запутан в отличной документации SQL, что касается обработки соединений.Мне нужно понять лучшие практики или как правильно обрабатывать базовое соединение.

Допустим, у меня есть такой объект.

SqL sql = new Sql(dataSource);
sql.withTransaction {
 .....
}

Теперь я должен закрыть соединение?sql.close в блоке, наконец?Или я просто оставлю это там.

Теперь рассмотрим это:

SqL sql = Sql.newInstance (connection parameters);
sql.withTransaction {...}

Требуется ли sql.close() сейчас?

Теперь вот еще один вариант.*

Нужно ли самому управлять соединением в этот раз?Или я все еще могу оставить его без sql.close().

. В любом из вышеперечисленных случаев я пишу свой код в сервисе Grails, который может быть или не быть транзакционным.

1 Ответ

2 голосов
/ 12 февраля 2011

afaik, все методы сами обрабатывают соединение.
Вы должны иметь дело с этим, только если вы использовали конструктор, который получает соединение.
если вам не нужны транзакции и вы хотите повторно использовать соединение, которое вы используете, используйте Sql#cacheConnection(Closure)

...