|
|
|
DataSource Singletone, обновить данные в классе
|
|||
|---|---|---|---|
|
#18+
Не представляю как изменить данные в моем датасорсе, который синглтон. Суть такая, что в интерфейсе(Swing) можно поменять настройки, допустим путь до БД, при этом нужно сразу же обновить список пользователей (по нажатию кнопки) в комбобоксе, который лежит рядом, используя датасорсе. Список берется, естественно, из уже другой базы. Получается, нужно как-то пересоздать датасорсе, но как? Или вообще нужно использовать другой подход? Спасибо. Код: 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. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 13:18 |
|
||
|
DataSource Singletone, обновить данные в классе
|
|||
|---|---|---|---|
|
#18+
Пересоздать: Код: java 1. 2. Использовать PropertyChangeSupport/PropertyChangeListener, чтобы подписывать UI на событие изменения dataSource Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 13:25 |
|
||
|
DataSource Singletone, обновить данные в классе
|
|||
|---|---|---|---|
|
#18+
NixicИли вообще нужно использовать другой подход? смотря для чего программа. Если она изначально "менеджер БД", тогда пересоздавать и учитывать ВСЕ события на горячую (дорого). По простому, при смене БД - перегрузить всё приложение. ...Если у вас юзвери работяги, а не программисты по БД. Иначе надо делать не синглетон, а напр. на каждое окно свой экземпляр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 13:38 |
|
||
|
DataSource Singletone, обновить данные в классе
|
|||
|---|---|---|---|
|
#18+
Спасибо. Пока использовал простое пересоздание. А когда будет 3-5-10 и т.д. пересозданий, что, в принципе, маловероятно, то старые датаСорсы со временем сами отомрут? Точнее, при пересоздании вижу висящие подключения к БД. И они не помирают :) Как быть? В частности есть метод, которые возвращает список пользователей системы, в него и добавил пересоздание, но что-то не то... : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2015, 11:09 |
|
||
|
DataSource Singletone, обновить данные в классе
|
|||
|---|---|---|---|
|
#18+
Nixic, А этот метод кто-то другой писал? Код: java 1. 2. 3. 4. Надо закрывать старый DataSource это закроет все его активные соединения. Лучше это даже делать после успешного теста нового DataSource, тогда возможность откатиться ещё останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2015, 11:13 |
|
||
|
DataSource Singletone, обновить данные в классе
|
|||
|---|---|---|---|
|
#18+
NixicВ частности есть метод, которые возвращает список пользователей системы, в него и добавил пересоздание, но что-то не то... : Что за бред. Есть метод "которые возвращает список пользователей". Зачем он вызывает какие-то левые операции типа "пересоздания"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2015, 11:14 |
|
||
|
DataSource Singletone, обновить данные в классе
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, shutdownDataSource я уже попробовал, это не сработало, подключения так и висели(видимо как-то не так использовал), писал его не я, да. Этот метод был в примерах, когда я искал, как писать подобный метод. Сейчас убрал из него статик и использовал так, но подключения все-равно висят... pool.shutdownDataSource(pool.getDataSource()); по поводу того, куда я "воткнул" пересоздание, это пока просто для теста на висящие подключения, так сказать. Правильно будет вывести его в отдельный паблик метод, вызывать перед вызовом getAllUsers() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2015, 11:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39014251&tid=2125149]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 269ms |
| total: | 387ms |

| 0 / 0 |
