|
|
|
SWING
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть форма с сотней(а может и 2-мя сотнями) полей для ввода, вопрос как правильно все это поместить в БД. Поясняю вариант 1: пробежать по всем панелям и собрать в список или map(если в мап то можно указать название поля - значение) компоненты с приведением к текстфилд, затем уже его методом получать содержимое и передавать в сущность для последующей записи в БД. Сразу возникают проблемы с типами данных т.к. из текстфилд возвращает всегда строку, конечно ее можно легко парсить, но это надо делать индивидуально для каждого значения:( 2: Создать бин, привязать к нему через биндинг поля...(опять же потом в сущность и данные в БД) работающего варианта у меня не получилось, куча ошибок связанных с типами полей. Хотелось бы замечания, предложения услышать... Да сразу говорю задача больше учебная чем реальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 10:22:43 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
olegeos, а можете приложить фото того осьминога, который все это заполняет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 10:34:15 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
а если серьезно мысли есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 10:43:54 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
olegeosа если серьезно мысли есть? если приложение у вас строиться по классическй MVC схеме, то исходя из нее во view передается некая сущность, которая имеет все поля, которые вы заполняете во view. После Submit`а - эта сущность возвращается в сервис слой , где должным образом обрабатывается и сохраняется уже в базу посредством какого нить dao слоя.Проще всего, наверное, сущность запамить с помощью любого orm`а(допустим hibernate) на одну или несколько таблиц и сделать что нить вроде entityManager.persist в качестве сохранения. Но я бы все пихал в мапу чисто из лени ;) Сделал бы бы какой нить абстрактный контрол, там бы какой нить метод setOnAction и по изменению контрола обязательно включил бы onAction - где сохранял бы значение в мапу ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 10:58:08 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
Конечно же MVVM, биндинг, ну и не обязательно всё пихать в единственный бин. Стоит таки подумать над бизнес-моделью и нормализацией БД. Если у вас биндинг не получился и вы не разобрались почему, то откуда уверенность что получиться что-то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 11:32:28 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
"что-то другое" работает, но неудобно, некрасиво, сложно поддерживать... а биндинг не то чтобы совсем не получился, просто получается еще хуже того что есть, зачем усложнять и так сложное. По поводу нормализации бд, здесь все в порядке, структура БД устраивает, что-то выделять нет необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 11:53:36 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
Ну, не знаю. На пальцах там можно долго мусолить, потому что никакой конкретики пока не написано. Соответственно в чем именно проблема не понятно, и какого вы ответа ждете, ни сказал ни слова о самой проблеме? Не скажу что у нас по 100 полей на формах, но 20-30, точно наберется. Через биндинг чудесно всё связывается с бинами и затем персиститься. Есть, конечно, несколько специфичных проблем, но они решаются простыми утилитами на рефликсии. Попробуйте WindowBuilder Pro - накидайте в нем простую форму и сконфигурируйте в нем же binding. Увидите желаемую структуру и сможете на неё перевести вашу форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 12:04:07 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
olegeos, а что там усложнять то, много небось накопипащено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 12:07:21 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
С одной стороны задача не сложная по сути: вводятся значения их надо проверить и записать в БД, вопрос в количестве вводимых данных и независимости от этого количества. Есть шаблоны по которым люди уже давно работают, непонятны детали(лично для меня) реализации, КАК правильно делать? (сбор данных их обработку) Пример ввел числовое значение в поле, привязываю его к полю бина... Сразу вопрос приведение типов, ввожу по факту строку, есть Конвертер, но опять надо для всех используемых типов его реализовать и приделать. Это я могу сделать по другому: по максимуму регулярные выражения и маски в форме ввода, проверки перед сохранением в сущность. А если полей для ввода МНОГО это для каждого надо заморочиться (пусть конвертеров будет и не много) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 12:08:37 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Не скажу что у нас по 100 полей на формах, но 20-30, точно наберется. Через биндинг чудесно всё связывается с бинами и затем персиститься. Есть, конечно, несколько специфичных проблем, но они решаются простыми утилитами на рефликсии. Да примерно такого ответа и жду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 12:28:50 |
|
||
|
SWING
|
|||
|---|---|---|---|
|
#18+
olegeosС одной стороны задача не сложная по сути: вводятся значения их надо проверить и записать в БД, вопрос в количестве вводимых данных и независимости от этого количества. Есть шаблоны по которым люди уже давно работают, непонятны детали(лично для меня) реализации, КАК правильно делать? (сбор данных их обработку) Код: 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. olegeosПример ввел числовое значение в поле, привязываю его к полю бина... Сразу вопрос приведение типов, ввожу по факту строку, есть Конвертер, но опять надо для всех используемых типов его реализовать и приделать. Это я могу сделать по другому: по максимуму регулярные выражения и маски в форме ввода, проверки перед сохранением в сущность. А если полей для ввода МНОГО это для каждого надо заморочиться (пусть конвертеров будет и не много) Ну, во-первых завести свой контрол NumberTextField под нужды проекта. Во-вторых конвертеров не так много. (У нас сейчас 27, половина для разных типов Date/Time, вторая половина для специфичных полей). Но они примитивны и понятны, хоть 50 будет - не страшно. Использовать тоще проше простого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 12:38:15 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38511968&tid=2127912]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 477ms |

| 0 / 0 |
