|
|
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
Есть дерево, при нажатии на узел дерева выполняется запрос и справа в таблице отображаются данные из базы данных. Так вот, не могу понять что происходит, в одном из узлов находится 430 строчек, которые необходимо отобразить в табличке, цифра в принципе не большая, в конце концов это же не 4 тысячи, но! проблема в том, что с момента нажатия узла и момента отображения данных в таблице, проходит чуть ли не секунд 20, это ооооочень долго для таких объемов. Приведу код как я вставляю данные в таблицу: Код: 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. Поставила везде System.out.println(""); для проверки где же все-таки затыкается это все, но ничего подобного, в консоль очень быстро выводит все System.out.println(""); от 1 до 7, а данные только спустя время. Что я делаю не так, или вообще что происходит? Подскажите пожалуйста. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 23:50:52 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
Помогите советом, очень нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 14:36:01 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
С базой данных хорошо бы работать через SwingWorker. Но это на будущее. Биндинги каждый раз пере-создаются? Не пора ли познакомиться с профайлером? Так как он уже давно входит в стандартую поставку JDK, то стоит, наверное, узнать как им пользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 14:48:47 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
BlazkowiczС базой данных хорошо бы работать через SwingWorker. Но это на будущее. Биндинги каждый раз пере-создаются? Не пора ли познакомиться с профайлером? Так как он уже давно входит в стандартую поставку JDK, то стоит, наверное, узнать как им пользоваться? да, каждый раз при нажатии на узел дерева, вызывается тот кусок кода, который я выслала. про профайлеры не в курсе, дайте ссылочку на примеры. спасибо что откликнулись, а то я уже вся извелась тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:02:16 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
BlazkowiczС базой данных хорошо бы работать через SwingWorker. Но это на будущее. Биндинги каждый раз пере-создаются? Не пора ли познакомиться с профайлером? Так как он уже давно входит в стандартую поставку JDK, то стоит, наверное, узнать как им пользоваться? и кстати, я со свинг воркером работала, перед началом того куска кода который я выслала, я добавляла: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. но эффекта это не дало, может я конечно не так использую, не знаю даже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:05:49 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
JulTда, каждый раз при нажатии на узел дерева, вызывается тот кусок кода, который я выслала. про профайлеры не в курсе, дайте ссылочку на примеры. спасибо что откликнулись, а то я уже вся извелась тут http://habrahabr.ru/post/61857/ http://habrahabr.ru/post/73032/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:13:02 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
JulTи кстати, я со свинг воркером работала, перед началом того куска кода который я выслала, я добавляла: но эффекта это не дало, может я конечно не так использую, не знаю даже Во-первых это, скорее всего, не имеет отношения к вашей проблеме. Во-вторых, да. Вы его совсем не правильно используете. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:15:51 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
JulTда, каждый раз при нажатии на узел дерева, вызывается тот кусок кода, который я выслала. Биндинг, обычно, создаётся один раз. Потом используется. Данные поменяли - через биндинг обновился UI. Но у вас там, вероятно, разные таблицы на все узлы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:17:14 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTда, каждый раз при нажатии на узел дерева, вызывается тот кусок кода, который я выслала. Биндинг, обычно, создаётся один раз. Потом используется. Данные поменяли - через биндинг обновился UI. Но у вас там, вероятно, разные таблицы на все узлы. нет, табличка одна, а вот когда по строке таблицы клацаю, тогда заполняются другие таблицы, но там проблем уже нет. огромное спасибо за советы. только вот еще вопрос один, как мне создать этот биндинг один раз, дело в том, что вначале таблица загружается пустой, она заполняется только тогда, когда пользователя клацнул по дереву, если я делаю в самом начале: JTableBinding jTableBinding2 = SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tovarList, jXTable3); то ему уже нужно чтобы tovarList был не нулевым, а он нулевой, опять-таки, до тех пор, пока пользователь не нажал по дереву ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:44:37 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
Сделать пустой список и завернуть в ObservableCollection. Потом вместо того чтобы пересоздавать заново, просто удалить всё и добавить новые объекты в список. ObservableCollection нотифицирует всех слушателей и они обновлят отображение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:47:48 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСделать пустой список и завернуть в ObservableCollection. Потом вместо того чтобы пересоздавать заново, просто удалить всё и добавить новые объекты в список. ObservableCollection нотифицирует всех слушателей и они обновлят отображение. спасибо, пошла пробовать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:48:45 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСделать пустой список и завернуть в ObservableCollection. Потом вместо того чтобы пересоздавать заново, просто удалить всё и добавить новые объекты в список. ObservableCollection нотифицирует всех слушателей и они обновлят отображение. чет не получается у меня до конца разобраться, вначале подставляю пустую коллекцию: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. далее идет нажатие на дерево, tovarList заполняется новыми данными: Код: java 1. 2. 3. но в табличке данные не показываются, почему? ведь я сделала его как ObservableCollections, что-то я явно делаю не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 16:36:59 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
JulT Код: java 1. но в табличке данные не показываются, почему? ведь я сделала его как ObservableCollections, что-то я явно делаю не так Это вы называете удалить все элементы из коллеции и добавить новые? Я имел ввиду tovarList.clear() tovarList.addAll(tovarQuery.getResultList()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 16:40:50 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulT Код: java 1. но в табличке данные не показываются, почему? ведь я сделала его как ObservableCollections, что-то я явно делаю не так Это вы называете удалить все элементы из коллеции и добавить новые? Я имел ввиду tovarList.clear() tovarList.addAll(tovarQuery.getResultList()) сорри, это я ошиблась, не доглядела. вообщем все сделала как вы сказали, но данные не отображаются, сделала tovarList.size(), показало, что 430 записей есть, т.е. запрос отрабатывает, но данные не отображаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 16:56:50 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
JulTсорри, это я ошиблась, не доглядела. вообщем все сделала как вы сказали, но данные не отображаются, сделала tovarList.size(), показало, что 430 записей есть, т.е. запрос отрабатывает, но данные не отображаются Вероятно вы биндинг недосоздали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 17:01:21 |
|
||
|
Долгий запрос, или в чем все-таки дело
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTсорри, это я ошиблась, не доглядела. вообщем все сделала как вы сказали, но данные не отображаются, сделала tovarList.size(), показало, что 430 записей есть, т.е. запрос отрабатывает, но данные не отображаются Вероятно вы биндинг недосоздали. вообщем что получается, у меня все работает хорошо до тех пор, пока я не нажимаю отсортировать по какой-нибудь колонке, а как только нажала, снова при нажатии на узел начинаются дикие тормоза при отображении данных, что же это за хрень такая, никогда такого не было, всю жизнь выводила данные по тысячу строк, а сейчас такие тормоза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2012, 13:33:29 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37789769&tid=2131810]: |
0ms |
get settings: |
14ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
49ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 320ms |
| total: | 515ms |

| 0 / 0 |
