Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Как лучше организовать работу с БД |
Автор: olexande 24.9.2008, 12:50 |
Продолжаю разбираться ... Сейчас уже наваял по примерам что-то похожее на цель ... Предм. область: учёт картриджей к принтерам, у кого он, сколько времени, заправлен-ли? Вопрос 1: Есть таблица в БД. Поля - ID (уникальный ключ), поле названия чего-то там (на рисунке производитель), JComboBox заполняется из БД (запрос вытягивает из БД 1 столбец с названиями ). Как можно или правильнее организовать связь между выбранным производителем картриджей и его ID для дальнейшего использования? Думаю потом не корректно будет опять искать в БД ID уже торговой марки, интересующей пользователя, которую я получу от JComboBox ... ориентировочный интерфейс прилепил ... |
Автор: Kudzu 24.9.2008, 13:18 |
Что, простите? |
Автор: mbasil 24.9.2008, 14:48 |
Простите надо идти не от картинок пользовательского интерфейса, а от структуры базы или классов доменной модели приложения. Вопрос вы задали невразумительно. |
Автор: olexande 24.9.2008, 15:11 | ||
Все таблицы в 1 БД на 1 сервере ... 1 таблица : ID_vendor (уникальный ключ в таблице), vendor (текстовое поле, торговая марка) 2 таблица : ID_kartridg (уникальный ключ в таблице), ID_vendor , kartridg_type (текстовое поле, тип картриджа) Хочу что-бы пользователь выбрал vendor, что-бы потом ID_vendor подставить в таблицу 2 в соотв. поле. (что-бы небыло в БД записей типа Hewlet pakard, Hewled Paсkart, HP ... ![]() JComboBox заполняю запросом из БД:
Как получить ID_vendor, соответствующий выборанному пользователем ТМ без доп поиска по имени vendor. Само значение vendor я могу получить от JComboBox ... Так корректнее вопрос? |
Автор: mbasil 24.9.2008, 16:59 |
Извлекайте данные прямо в модель для JComboBox в виде объекта, который в методе toString() возвращает только имя vendor'а, а его ID не показывает в списке, но хранит. Запрос же делайте так "SELECT ID_vendor, vendor FROM `kartriges`.`types`;" и извлекайте данные в объекты класса, например Vendor Подозреваю, что сейчас вы в JComboBox в качестве значения просовываете объект типа String. Не забывайте, что у JComboBox имеется модель и именно она содержит список. Этот список не обязательно должен иметь элементы типа String. |
Автор: olexande 26.9.2008, 11:10 | ||
ДА, заполняю так:
А можно чуть подробнее про эти объекты и как из них тогда вытягивать ID? |
Автор: mbasil 26.9.2008, 17:28 | ||
1. Создать класс Vendor 2. Реализовать у класса Vendor метод public String toString() так, чтобы он возвращал только имя вендора
|
Автор: olexander 5.10.2008, 12:18 |
Пока продолжу спрашивать дальше ... Вопрос 2: Как (с помощью чего) удобно (проще ... ) создать форму документа (некоего абстрактного отчёта) состоящего из данных БД, шапки, надписей с возможностью их печати в виде как на экране? Например как отчёты в MS Access. Пользователю самому создавать не обязательно ... Вопрос 3: Программу слепил на базе примера "InternalFrameDemo" из книги Java 2 Хорстмана. выполняю запрос ... В каждом "меню интерфейса" делаю некий простой запрос к БД. Ввод данных, изменение, вывод таблицы ... В каждом "блочке" заново создаю соединение с БД и выполняю запрос ... В паскале я-бы "взял-бы" главную процедуру в "запрос соединения" и от туда же-бы вызывал всё. Методом тыка просто "впихнуть" не удалось ... ИДЕ говорит то сделай его статик, то не видит чего-то ... Как это организовать корректно? |