Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для Сергей1980
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991

Комбобокс с выгрузкой ключа и значения из БД

11.09.2020, 23:02. Показов 2738. Ответов 8

Студворк — интернет-сервис помощи студентам
Привет !
Как мы знаем, в бд есть таблицы справочники, и таблицы куда мы вставляем значение (foreign keys) .
К примеру на самом примитивном и простом уровне есть таблица товары, и есть таблица продажи, которые соединены по общему ключу. Пусть это будет код товара, поле product_id (primary key) в главной таблице, и такое же поле product_id (foreign key) в "подчиненной" таблице продажи.
Как мы видим, в "подчиненной" таблице продажи хранятся значения ключей из главной.

Теперь к Java:

Есть грид TableView, хочу в нем на уровне ячейки организовать комбобокс (ComboBoxTableCell).
делается это очень просто:
1) создается ObservableList содержащий коллекцию к примеру чисел , пусть это будут коды товаров из таблицы товары
Java
1
ObservableList<Integer> comboValues = FXCollections.observableArrayList(1, 2, 3,4,55,66,77);
2) Дальше - на уровне грида TableView (который являет собой выборку из таблицы продажи, "подчиненной" по отношению к товары мы на уровне ячейки определяем способ редактирования, фабрику:
Java
1
product_id.setCellFactory(ComboBoxTableCell.forTableColumn(comboValues));
Но дело в том, что комбобокс принимает только числовые значения ключей из таблицы товары.

Подскажите пожалуйста, как хранить в комбобоксе (ключ-значение), чтобы перед глазами выводить в гриде текстовые значения, а подставлять при изменении ключи?

Ну к примеру по аналогии с гридом в C# . Там есть отдельные свойства у комбобокса, типа ValueMember и DisplayMember.

Добавлено через 7 минут
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2020, 23:02
Ответы с готовыми решениями:

Значения из табл в комбобокс
Здравствуйте, есть ComboBox, который берет итемы из таблицы помещения. Подскажите как сделать, что бы показывало только свободные...

Уникальные значения в комбобокс
Всем привет. Возникла следующая проблема. Есть три комбобокса, ссылающиеся на один список. При этом необходимо, чтобы при выборе одного...

Выгрузить значения комбобокс на лист через VBA
Выгрузить значения комбобокс на лист vba туда засунул, а обратно не пойму как. Но догадываюсь, что без цикла не обойтись ...

8
 Аватар для Сергей1980
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
15.09.2020, 18:13  [ТС]
После анализа интернета на возможные решения данного вопроса (они есть, но очень громоздкие, так как пытаются все впихнуть непосредственно на обработку действий данного комбобокса - прорисовка дополнительных панелей ,размещение на панели списка элементов итд итд. ) пришел к выводу, что что-то постоянно упускали из вида.
Можно просто в классах с POJO создать дополнительные поля типа текст, которые в свою очередь при инициализации своего экземпляра тащат текстовое значение в сам TableView из заранее подготовленного ObservableList из таблицы справочника.
То есть грузить в основную таблицу с комбобоксом текст. Источником данных комбобокса сделать текст. И только при отправке данного текста с комбобокса назад в экземпляр класса подставлять числовой ключ нового значения и после этого отправлять данные на сервер.
Это сэкономит кучу времени по сравнению с действующими примерами из сети.
Кто озадачен такой же проблемой, пишите, сваяю пример, ларчик просто открывался. Похоже эта ветка по Java умирает, что то нет экшна тут, последние посты как монологи
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
16.09.2020, 09:59
Цитата Сообщение от Сергей1980 Посмотреть сообщение
что то нет экшна тут
никто не пишет UI на джава.
0
 Аватар для Сергей1980
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
16.09.2020, 13:58  [ТС]
Это печально, потому что инструментарий типа openjdk, javafx sdk и конструктор бесплатные. Себестоимость нулевая. Плюс все это можно пересобрать сразу и под винду, линукс, мак.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
16.09.2020, 14:21
Цитата Сообщение от Сергей1980 Посмотреть сообщение
Плюс все это можно пересобрать сразу и под винду, линукс, мак.
а можно написать на JS и ничего пересобирать не надо. Будет работать везде, где есть браузер. Себестоимость так же нулевая. Возможности куда шире чем во всяких javafx
0
 Аватар для Сергей1980
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
16.09.2020, 17:45  [ТС]
Под веб можно разработать и написать ,согласен. Но тут надо понимать что js пока плохо работает с FSO на компьютере пользователя и программами типа офисных приложений (Excel,Word и проч.). Да и код там весь наружу.
Десктоп не так уж и плох.
Но это я так, понудеть ))
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
17.09.2020, 17:45
никто не говорит писать на JS полностью. На нём надо писать только фронт (JavaFX это тоже фронт если что). Бек на джаве и тут отличий нет никаких т.к серверная джава может работать с ОС без проблем.
0
 Аватар для Сергей1980
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
17.09.2020, 19:50  [ТС]
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
никто не говорит писать на JS полностью. На нём надо писать только фронт (JavaFX это тоже фронт если что). Бек на джаве и тут отличий нет никаких т.к серверная джава может работать с ОС без проблем.
Да никто и не спорит)
Надо действительно попробовать поставить сервлет и потестить работу. Никогда раньше не делал этого.
Что нужно поставить , tomcat?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
18.09.2020, 08:02
Лучший ответ Сообщение было отмечено Сергей1980 как решение

Решение

Spring boot
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.09.2020, 08:02
Помогаю со студенческими работами здесь

Добавление значения не из списка в комбобокс с несколькими столбцами
Добрый день уважаемые форумчане. Прошу помочь найти или натолкнуть на возможные варианты решения следующей проблеммы: I Условия 1....

Комбобокс: возможно в качестве значения по умолчанию указать произвольный текст?
Возможно настроить отображение по умолчанию в комбобокс произвольного текста например &quot;&lt;Выберите товар&gt;&quot; ?

Создать программу, в которой словарь будет принимать в качестве ключа значения счётчика, а в качестве значения, то,
Создать программу, в которой словарь будет принимать в качестве ключа значения счётчика, а в качестве значения, то, что введет...

Извлечение значения и 3-и ключа
Каким образом можно сделать или даже использовать уже готовую структуру данных, с помощью которой в нее можно поместить 4 аргумента или 2....

Отделение значения от ключа
Доброго времени суток. Как можно, во время чтения файла, отделить значение от ключа? key=value


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru