С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для margaritachka
0 / 0 / 0
Регистрация: 25.12.2009
Сообщений: 19

Связи между сущностями, вывод таблиц, Derby

29.11.2011, 02:51. Показов 3049. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
У меня тут при "ознакомлении" с Derby в NetBeans возникла проблема.
Создала 4 таблицы. Теперь не знаю, как вывести на экран данные так, чтобы с одной таблицы, например, вывелось 2 столбца, с другой один столбец и т.п.
С выводом одной целой таблицы на экран проблем нет.
Подскажите пожалуйста, как это сделать. У меня есть исходный код, с которым я работаю. Этот кусочек выводит таблицу Product
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 if ("show".compareTo(obj.getMsg()) == 0) {
 
                    list = new ArrayList();
 
                    ResultSet rs = ServerDB.getStatement().executeQuery("SELECT * FROM APP.PRODUCT");
                    while (rs.next()) {
                        System.out.println(rs.getRow() + ". " + rs.getString("ProductId") + ". " + rs.getString("ProductName")
                                + "." + rs.getString("Sebestoimost") + ". " + rs.getString("UrovenPribili"));
                        list.add(rs.getString("ProductId"));
                        list.add(rs.getString("ProductName"));
                        list.add(rs.getString("Sebestoimost"));
                        list.add(rs.getString("UrovenPribili"));
 
                    }
                    BufferedOutputStream buf_output = new BufferedOutputStream(s.getOutputStream());
                    ObjectOutputStream obj_output = new ObjectOutputStream(buf_output);
 
                    Sign res = new Sign(list);
                    obj_output.writeObject(res);
                    obj_output.flush();
                }
Пыталась переделать, вот что получилось
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
if ("analyse".compareTo(obj.getMsg()) == 0) {
 
                    list = new ArrayList();
 
                    ResultSet rs = ServerDB.getStatement().executeQuery("SELECT * FROM APP.PRODUCT" + "SELECT * FROM APP.FIRMA" 
                            + "SELECT * FROM APP.Cena" + "SELECT * FROM APP.TorgovajaSet");
                    while (rs.next()) {
                        System.out.println(rs.getRow() + ". " + rs.getString("ProductName") + ". " + rs.getString("Sebestoimost")
                                + "." + rs.getString("UrovenPribili") + ". " + rs.getString("Nazvanie") + ". " + rs.getString("TorgovajaSetName") + ". "
                                + rs.getString("ZelaemayaCena"));
                        list.add(rs.getString("ProductName"));
                        list.add(rs.getString("Sebestoimost"));
                        list.add(rs.getString("UrovenPribili"));
                        list.add(rs.getString("Nazvanie"));
                        list.add(rs.getString("TorgovajaSetName"));
                        list.add(rs.getString("ZelaemayaCena"));
 
                    }
                    BufferedOutputStream buf_output = new BufferedOutputStream(s.getOutputStream());
                    ObjectOutputStream obj_output = new ObjectOutputStream(buf_output);
 
                    Sign res = new Sign(list);
                    obj_output.writeObject(res);
                    obj_output.flush();
                }
я так поняла, что проблема в этой строчке
Java
1
2
ResultSet rs = ServerDB.getStatement().executeQuery("SELECT * FROM APP.PRODUCT" + "SELECT * FROM APP.FIRMA" 
                            + "SELECT * FROM APP.Cena" + "SELECT * FROM APP.TorgovajaSet");
Там нужно как-то по другому обращаться к базе, возможно устанавливать связи между сущностями, но я, честно говоря, понятия не имею как это делать в Derby.
Вообще в Derby можно устанавливать связи между сущностями разных таблиц?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2011, 02:51
Ответы с готовыми решениями:

Тип связи между сущностями
Здравствуйте! начинаю осваивать БД, помогите разобраться на примере базы данных банка. Данные о клиенте включают его имя, адрес, номер...

Организовать связи между сущностями
Добрый день. Помогите, пожалуйста, правильно организовать связь между сущностями. Строго следовать заданию: Информационная...

Работа в ERwin, связи между сущностями
Для создания приложения базы данных "Альпинистский клуб" необходимо на начальной стадии создать логическую модель. Собственно, такая у меня...

4
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
29.11.2011, 08:16
Цитата Сообщение от margaritachka Посмотреть сообщение
понятия не имею как это делать
Вот так
1
 Аватар для margaritachka
0 / 0 / 0
Регистрация: 25.12.2009
Сообщений: 19
30.11.2011, 19:44  [ТС]
Спасибо, с этим я уже разобралась. Ответ был прост: забудь о дерби, делай лучше в MySQL, там на много удобнее)
запрос теперь выглядит так и все работает:
Java
1
2
3
4
ServerDB.Zapros("SELECT * FROM `product` INNER JOIN `firma` "
                   + "ON `product`.`FirmaId` = `firma`.`FirmaId` INNER JOIN `cena`"
                   + "ON `firma`.`CenaId` =  `cena`.`CenaId` INNER JOIN `torgovajaset`"
                   + "ON `torgovajaset`.`CenaId` = `cena`.`CenaId`",7);
У меня появилась новая проблема, опять с формулированием SQL запроса.
Если кратко, то мне надо вывести в таблицу столбец TorgovajaSetName из таблицы torgovajaset и «число», которое будет не больше Cena из таблицы cena цена и не меньше UrovenPribili из таблицы product.
Чтобы не писать рандом, который я, кстати, тоже не до конца понимаю как делается, я решила не париться и тем самым «числом» сделать значение Cena-1, ну то есть во второй столбец таблицы будет выводиться число, которое на 1 меньше, чем Cena из таблицы cena
В моем запросе это выглядит так:
Java
1
2
3
ServerDB.Zapros("SELECT `cena`.`Cena`-1, `torgovajaset`.`TorgovajaSetName` "
                   + "FROM `cena`, `product`, `torgovajaset` "
                   + "WHERE `cena`.`Cena`<`product`.`UrovenPribili`",8);
В другом пакете класс ServerDB, вот его часть, которая работает непосредственно с запросом:
Java
1
2
3
4
5
6
if(I==8){
            rs = stmt.executeQuery(SQL);
            while (rs.next()) {
            list.add(rs.getString("Cena"));
            list.add(rs.getString("TorgovajaSetName"));      
            }}
Запрос, начинающийся с Select, почему-то в проекте не работает, хотя спокойно работает в MySQL, может кто-нибудь сможет найти ошибку или подсказать что-нибудь?
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
02.12.2011, 06:35
Цитата Сообщение от margaritachka Посмотреть сообщение
В моем запросе это выглядит так:
Запрос неправильный.


Цитата Сообщение от margaritachka Посмотреть сообщение
Запрос, начинающийся с Select, почему-то в проекте не работает
Как именно он не работает? Генерируется исключение? Получаешь не то, что ожидаешь? Или что-то ещё?
0
 Аватар для margaritachka
0 / 0 / 0
Регистрация: 25.12.2009
Сообщений: 19
02.12.2011, 11:00  [ТС]
Цитата Сообщение от aleksandy Посмотреть сообщение
Запрос неправильный.


Как именно он не работает? Генерируется исключение? Получаешь не то, что ожидаешь? Или что-то ещё?
знаю, что запрос неправильный, может подскажете, как правильно сделать?

никаких исключений не генерируется, просто зависает программа
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2011, 11:00
Помогаю со студенческими работами здесь

Определить ключи и связи между сущностями
Здравствуйте! Дана схема По этой схеме выписать ключи и связи между между сущностями. Вот что у меня получилось: Ключи: К1:...

Про ассоциации has many\belongs to: правильно ли я выбрал их для связи между двумя сущностями модели?
Добрый день! В настоящий момент решаю, как организовать взаимосвязи в модели моего первого веб-приложения, есть одна не до конца понятая...

Связи между сущностями "студент" и "посещение"
Есть таблица &quot;студент&quot; id_student - prymary name - text...

Вывод данных (Связи таблиц Access)
Добрый день! Имеется проблема, не могу сделать так, чтобы правильно выводилась информация в моей программе, с помощью табличных связей! ...

Создание базы данных Derby состоящую из 3-х таблиц
Здравствуйте. Нужна консультация относительно механизма работы программы. Я сделал уже небольшой набросок и нахожусь сейчас в тупике,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru