|
|
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
а чем такой вариант плох: Singleton Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. где-то в впервых выполняемх классах Код: java 1. и в нужном месте Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 07:31 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
имхо, нужно найти для себя коннекшин пул, например HicaryCP и не разводить воды на две страницы :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 08:40 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
вадяа чем такой вариант плох Смотря как рассматривать этот вариант: 1. Если рассматривать, как конкретный код, то плох хардкоженными настройками подключения. 2. Если рассматривать, как способ реализации синглетона, то тем, что код внутри if'а может выполниться несколько раз, что не очень хорошо в случае, если этот код медленный/дорогой. 3. Если рассматривать, как использование паттерна синглетон, то смотрите посты Blazkowicz, что это не тру, что глобальная видимость и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 08:49 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
just_vladimirвадяа чем такой вариант плох Смотря как рассматривать этот вариант: 1. Если рассматривать, как конкретный код, то плох хардкоженными настройками подключения. 2. Если рассматривать, как способ реализации синглетона, то тем, что код внутри if'а может выполниться несколько раз, что не очень хорошо в случае, если этот код медленный/дорогой. 3. Если рассматривать, как использование паттерна синглетон, то смотрите посты Blazkowicz, что это не тру, что глобальная видимость и т.д. 1. спорное утверждение. 2. почему? 3. чем плоха глобальная видимость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 09:00 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
rema174, Ну дак пул обезличенный юзер. Все идут под одним логином. Вдруг у ТС не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 09:02 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
вадя, 1. Пусть так, лично для меня это очевидное утверждение 2. Наверное надо было добавить, что это возможно в многопоточном окружении (а если у вас веб-приложение, то хочешь не хочешь, а она уже есть). Дальше я думаю понятно. 3. Эт уже не ко мне, имхо, ничего особо страшного в этом нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 09:11 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
rema174имхо, нужно найти для себя коннекшин пул, например HicaryCP и не разводить воды на две страницы :-) Лично у меня совершенно нет доверия HicaryCP после прочтения статьи и комментов Паньгина к ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 09:20 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
just_vladimirЯ вот в упор не вижу здесь наличия состояния, а то что формально это java класс, то в данном случае по сути это не более чем своего рода неймспейс. Бывает. Статическая инициализация, которую хочет автор, переводит состояние из незарегистрированного драйвера в зарегистрированный. getConnection() переводит из состояния без физических соединений в состояние с соединениями. Потом автор прочитает про пул и засунет его в этот же класс. Тогда состояние станет более очевидным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 10:29 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
вадяа чем такой вариант плох: Не безопасной ленивой инициализацией. вадяв нужном месте В каждом месте где там нужен Connection нужно писать такую колбасу со всеми свойствами соединения. Красота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 10:31 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
вадя1. спорное утверждение. Аргументировал. вадя2. почему? Почему многопоточность? вадя3. чем плоха глобальная видимость? Мы ещё из прошлой темы поняли что SOLID, GRASP и даже KISS для тебя пустые слова. Смысл объяснять что такое сложная система и чем плоха связность внутри неё, если ты отродясь таких систем не видел и не рефакторил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 10:34 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
just_vladimir2. Наверное надо было добавить, что это возможно в многопоточном окружении (а если у вас веб-приложение, то хочешь не хочешь, а она уже есть). Дальше я думаю понятно. Даже для GUI приложения при работе с базой требуется многопоточность, чтобы GUI не блокировать. Так что мне трудно представить ситуацию помимо мелких однодневных проектов где многопоточность вообще не нужна. И уже тем более писать заранее плохой код, только под текущие требования к системе это совсем пагубная практика. just_vladimir3. Эт уже не ко мне, имхо, ничего особо страшного в этом нет. Для автора кода ничего страшного нет. Страшно за того человека, который придет после автора и захочет прикрутить пул, для чего ему придется перелопатить код всего проекта. Страшно за проджект менеджера, который увидит коммит в репозиторий на сотни классов, когда банально надо было Connection Pool добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 10:38 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
Petro123Ну дак пул обезличенный юзер. Все идут под одним логином. Вдруг у ТС не так? Не обязательно. Пул нужен даже если у юзера персональная авторизация в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 10:39 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
Blazkowiczjust_vladimirЯ вот в упор не вижу здесь наличия состояния, а то что формально это java класс, то в данном случае по сути это не более чем своего рода неймспейс. Бывает. Статическая инициализация, которую хочет автор, переводит состояние из незарегистрированного драйвера в зарегистрированный. getConnection() переводит из состояния без физических соединений в состояние с соединениями. Потом автор прочитает про пул и засунет его в этот же класс. Тогда состояние станет более очевидным. Если честно, то не очень убедили. Регистрация драйвера согласен, это действительно изменение состояния, но это глобальное состояние и в других реализациях это будет точно так же. Итого по прежнему вижу в этом просто процедурный подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 10:47 |
|
||
|
JDBC создание и закрытие соединений в отдельном классе
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123Ну дак пул обезличенный юзер. Все идут под одним логином. Вдруг у ТС не так? Не обязательно. Пул нужен даже если у юзера персональная авторизация в БД. в обычном случае инфо о юзвере содержится в коннекте СУБД. Но конечно есть исключения и ухищрения и всякие другие проекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2016, 11:12 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39238839&tid=2124048]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 433ms |

| 0 / 0 |
