|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
Привет всем! Подскажите пожалуйста, осваиваю Java+Android studio. Познакомился с замечательным простым паттерном Синглтон, + его использование в асинхронном режиме (важно, потому что запускать буду в onCreate MainActivity в андроид студио. Но тестирую саму работу в IntelIJ ). Есть небольшой класс вызова Connection и основных методов statement, код, который хорошо отрабатывает: Код: 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.
Как вы видите , используется статичный асинхронный метод передачи url в строку подключения из конструктора. Подскажите пожалуйста, есть ли возможность передать в статичный конструктор/метод пару текстовых переменных. (логин и пароль к примеру, один раз). И если да, то как? И второй вопрос : в main тестирую возможность выборки простым способом: Код: java 1.
Если база выключена выпадает куча эксепшенов. Подскажите пожалуйста. Как обработать так, чтобы просто в случае неправильного ввода логина и пароля либо отсутствия подключения выдавало true /false в консоли. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 19:04 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
Сергей ЛаловAndroid studio.это надо тему в ветку по андроид. Чтобы не писать велосипедов. Какая версия андроид? Сергей ЛаловНо тестирую саму работу в IntelIJ ).надо сразу писать в студии андроида. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 19:14 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
PetroNotC SharpСергей ЛаловAndroid studio.это надо тему в ветку по андроид. Чтобы не писать велосипедов. Какая версия андроид? Сергей ЛаловНо тестирую саму работу в IntelIJ ).надо сразу писать в студии андроида. Да тут вопрос не по андроиду больше, а по тестированию асинхронного соединения и возможности передать переменную в статичный метод. (в андроиде все работает, только дебаггинг много времени занимает и сборки не любят тестовых методов main внутри кода. Вопрос по Java в первую очередь). Со вторым вопросом я уже сам разобрался. Остался первый) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 19:28 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
Сергей Лалов Да тут вопрос не по андроиду больше, а по тестированию асинхронного соединения и возможности передать переменную в статичный метод. ну а как быть, если ДЛЯ АСИНХРОННОСТИ нужно 2 соединения отдельных или пул коннектов? А не одно соединение для всех потоков из синглтона? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:01 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
Сергей Лалов вопрос не по андроиду больше тогда и не пишите про андроид и активити вообще ничего в вопросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:03 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
а зачем синглтон если есть рефлексия? ну тоесть как бы да по шаблонам- но какой смысл если любой вася возьмет твой синглтон и трахнет его столько раз,сколько ему будет нужно? как по мне инкапсуляция и синглтоны в чатсности -какой то анонизм безсмысленный и беспощадный ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:07 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
asv79, как бы да. Синглтон счас антипаттерн. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:12 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
asv79а зачем синглтон если есть рефлексия? ну тоесть как бы да по шаблонам- но какой смысл если любой вася возьмет твой синглтон и трахнет его столько раз,сколько ему будет нужно? как по мне инкапсуляция и синглтоны в чатсности -какой то анонизм безсмысленный и беспощадный затем что рефлексия используется для других целей. а так конечно да. если очень хочется натянуть сову на глобус - у тебя это отлично получится. по теме ТСа - а в чем проблема просто в метод getDbConn передавать переменные которые следом пробросишь в конструктор? или я не понял вопрос ТСа? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:13 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
Сергей Лалов, в каждой активити, в конструкторе, поставьте DriverManager.getConnection(url+dbName,userName,password); И пусть каждое окошко делает отдельный коннект к базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:14 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
andreykaTпо теме ТСа - а в чем проблема просто в метод getDbConn передавать переменные которые следом пробросишь в конструктор? или я не понял вопрос ТСа? проблема в архитектуре - зачем синглетон и кто его сегодня пишет? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:15 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
asv79а зачем синглтон если есть рефлексия? ну тоесть как бы да по шаблонам- но какой смысл если любой вася возьмет твой синглтон и трахнет его столько раз,сколько ему будет нужно? как по мне инкапсуляция и синглтоны в чатсности -какой то анонизм безсмысленный и беспощадный трахают маньку на сеновале. а мы программируем. если ты не понимаешь зачем синглтон то это не означает, что он не нужен. синглтон - это один из стандартных дизайн-паттернов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:30 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
andreykaTесли ты не понимаешь зачем синглтон то это не означает, что он не нужен а тебе не интересно обосновать нужность? Сам писал "его"? Или статический класс? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:32 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
PetroNotC SharpandreykaTпо теме ТСа - а в чем проблема просто в метод getDbConn передавать переменные которые следом пробросишь в конструктор? или я не понял вопрос ТСа? проблема в архитектуре - зачем синглетон и кто его сегодня пишет? в смысле кто? и где там проблема я чот не понял? суть в том что тебе надо держать в системе не более одного инстанса какого-то конкретного класса. чем это вызвано? ну например, сервис, с которым тебе надо обмениваться данными может поддерживать не более одного подключения, и это подключение осуществляется в написаном тобою объекте. а у тебя приложение без синглтона наплодит их N и всё сломается. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:36 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Из всей массы советчиков по топику, вы один по коду непосредственно подсказали. Отдельно вам спасибо. Остальным рассуждальщикам спасибо за фон) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:36 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
PetroNotC SharpandreykaTесли ты не понимаешь зачем синглтон то это не означает, что он не нужен а тебе не интересно обосновать нужность? Сам писал "его"? Или статический класс? в спринге, синглтон - это дефолтовый бин скоуп например. т.е. ты пометил класс аннотацией сервис, компонент, бин и т.п. без дополнительных уточнений - ты создал синглтон. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:38 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
andreykaTсуть в том что тебе надо держать в системе не более одного инстанса какого-то конкретного класса. чем это вызвано? ну например, сервис, с которым тебе надо обмениваться данными может поддерживать не более одного подключения, и это подключение осуществляется в написаном тобою объекте. а у тебя приложение без синглтона наплодит их N и всё сломается. +1 Ну а применительно к коннекту в базу? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:39 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
Сергей ЛаловPetroNotC Sharp, Из всей массы советчиков по топику, вы один по коду непосредственно подсказали. Отдельно вам спасибо. Остальным рассуждальщикам спасибо за фон) анализировать чужие ответы в форуме (кто и сколько) не совсем скромно. Это совет). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:41 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
Сергей ЛаловPetroNotC Sharp, Из всей массы советчиков по топику, вы один по коду непосредственно подсказали. Отдельно вам спасибо. Остальным рассуждальщикам спасибо за фон) жаль что ты не понял и даже не попытался разобраться что там происходит под капотом и почему это сделано именно так, а не иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:41 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
PetroNotC SharpandreykaTсуть в том что тебе надо держать в системе не более одного инстанса какого-то конкретного класса. чем это вызвано? ну например, сервис, с которым тебе надо обмениваться данными может поддерживать не более одного подключения, и это подключение осуществляется в написаном тобою объекте. а у тебя приложение без синглтона наплодит их N и всё сломается. +1 Ну а применительно к коннекту в базу? надо смотреть как это работает. возможно ли при каждом вызове любой крад операции поднимать новый коннект к базе чтоб записать а потом его закрывать, насколько это ресурсозатратно, сколько отжирает времени открытие каждого нового коннекшина, как скоро у тебя пул кончится и т.п. если ты будешь где попало в коде делать вот это вот: DriverManager.getConnection(url+dbName,userName,password); то будет именно это. плюс еще ты и мешаешь всё в кучу. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:44 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
andreykaTкак скоро у тебя пул кончится и т.п.ну дак либо пул, либо синглетон. Так ведь? Синглетон это один коннект на весь десктоп проект. А пул коннектов даёт асинхронность. Поэтому либо в каждую форму коннект (у нас десктоп!), либо пул коннектов. imho ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:59 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, 10 лет на форуме уже, раньше с odbc общался из другого языка. Успешно. Написал несколько полноценных клиент серверное приложений под относительно крупные конторы. Морды на vb в основном. На стороне сервера - ms sql, mysql. В java 2 месяца. Офигенный язык. Курю, осваиваю с малого. Особенно поражает возможность гибко масштабировать структуру взаимодействия классов. В vb конечно для ленивых побольше плюшек)) Пример синглтона взял из сети, сам немного допилил. По вопросу номер 1-поднять соединение с базой как можно быстрей. База одна, соединение одно. И попробовать его заставить работать асинхронно. Jdbc- потому что знаю его собрата сносно. Он само и кэширует и выдает и много чего ещё, почему то молодежь лучше будет писать мотню кода, чем использовать то что есть) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 21:17 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
джава старьё. смотри на скалу и котлин. понравятся еще больше. я гарантирую ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 21:29 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
andreykaTджава старьё. смотри на скалу и котлин. понравятся еще больше. я гарантирую это ему не зайдёт после бейсика. И в андроиде больше обычной java чем котлин. Сергей ЛаловПример синглтона взял из сети, сам немного допилил. сеть это большая помойка. Надо проверять что берете. Сергей ЛаловПо вопросу номер 1-поднять соединение с базой как можно быстрей. ну например 0,1сек при открытии формы. Много? Делайте пул. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 21:37 |
|
Singleton, syncronized static method, jdbc open
|
|||
---|---|---|---|
#18+
PetroNotC SharpandreykaTкак скоро у тебя пул кончится и т.п.ну дак либо пул, либо синглетон. Так ведь? Синглетон это один коннект на весь десктоп проект. А пул коннектов даёт асинхронность. Поэтому либо в каждую форму коннект (у нас десктоп!), либо пул коннектов. imho пул я говорил в контексте базы данных. у нее тоже ограничено количество подключений. не забывай что новый коннекшн это новые ресурсы которые надо утилизировать и тебе и серверу бд. для каждой формы устанавливать отдельный коннекшн к базе может быть и накладно по ресурсам. и я не уверен, что это в контексте бестпрактизов. хотя если у тебя скажем, аш2 и всё локально - то плевать. но, опять же, возвращаясь к бестпрактизам.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 21:40 |
|
|
start [/forum/topic.php?fid=59&msg=39827962&tid=2121244]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 292ms |
0 / 0 |