|
|
|
SQL Connection + try(autoclosable)
|
|||
|---|---|---|---|
|
#18+
Всем привет! Мне нужно получить данные из базы, потом следует "тяжелая операция" с данными.. Я хочу использовать автоматическое закрытие ресурсов, но вот в чем вопрос: "тяжелую" операцию следует делать после блока "try", чтоб как можно быстрее освободить соединение? тогда нужно вынести ResultSet за блок "try" - но тогда будет ли вызван метод "close" автоматически? В общем помогите разобраться при условии что "autoClosable" останется.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:01 |
|
||
|
SQL Connection + try(autoclosable)
|
|||
|---|---|---|---|
|
#18+
freeVanчтоб как можно быстрее освободить соединение? Это сложный вопрос. Если соединение нужно и ты с ним работаешь (закрытие опер.дня бухгалтерии), то зачем его закрывать? Есть длинные транзакции и десктопы, где соединения по 8 часов рабочего времени открыты. Суть в том чтобы не забыть его закрыть. А не в быстроте. С другой стороны, если это веб, то быстрее закроется HTTP соединение от Ослика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:12 |
|
||
|
SQL Connection + try(autoclosable)
|
|||
|---|---|---|---|
|
#18+
Petro123, надо выбрать данные и после работать только с ними, соединение из пула, нужно его освободить как можно быстрее.. есть некоторое непонимание механизма: ResultSet закрывается когда Statement, Statement когда Connection.. как мне лучше вынести данные за блок "try": - в виде ResultSet, но тогда непонятно, он же должен закрыться вместе со Statement; - или ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:20 |
|
||
|
SQL Connection + try(autoclosable)
|
|||
|---|---|---|---|
|
#18+
freeVanнадо выбрать данные и после работать только с ними, - что значит выбрать? Такой термин у домохозяек. Вы объект Result будете вызывать? Вот на последней строке и нужно закрыть самому или автоматом. freeVanсоединение из пула, нужно его освободить как можно быстрее.. разные проекты есть. Это общее правило - после 6-ти всех выгнать с работы домой и опечатать комнаты. Однако некоторым надо работать. Например пул на 500 соединений в корпоративе из 300 юзверей. freeVanесть некоторое непонимание механизма: потрать пол дня и закрой всё руками без AutoClose. А завтра утром всё будет понятно. Рекомендую. Это то же самое что никто не делает Obj.Free() - есть сборщик мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:27 |
|
||
|
SQL Connection + try(autoclosable)
|
|||
|---|---|---|---|
|
#18+
Petro123, чето очень сложна.. перефразирую: забыть про базу данных совсем.. блок трай с ресурсами ОК? в блоке трай извлекаются данные для посдедущей очень тяжелой операции с ними. ВОПРОС: Как выполнить тяжелую операцию с данными при этом вне блока трай? Похоже я уже сам нашел ответ, пока писал пост ))). Думаю надо вынести поля для данных за блок трай.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:36 |
|
||
|
SQL Connection + try(autoclosable)
|
|||
|---|---|---|---|
|
#18+
freeVanДумаю надо вынести поля для данных за блок трай.. если есть возможность скопировать данные из ResultSet в переменную вне try, то ДА! )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:40 |
|
||
|
SQL Connection + try(autoclosable)
|
|||
|---|---|---|---|
|
#18+
freeVanPetro123, надо выбрать данные и после работать только с ними, соединение из пула, нужно его освободить как можно быстрее.. есть некоторое непонимание механизма: ResultSet закрывается когда Statement, Statement когда Connection.. как мне лучше вынести данные за блок "try": - в виде ResultSet, но тогда непонятно, он же должен закрыться вместе со Statement; - или ? Как только вы закроете Connection, вы потеряете свой Resultset. Если вы хотите это сделать надо записи из Recordset предварительно "переложить" в какую-нибудь Java коллекцию. Посмотрите на какой-нибудь Apache Commons DbUtils или Spring JDBC - они так делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39305676&tid=2123739]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
92ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 441ms |

| 0 / 0 |
