Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод данных из mysql, в виде таблицы 
:(
    Опции темы
WickedMan
Дата 30.1.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



народ, выручайте плз!
задача такая вывести данные из базы MySQL в виде:
- таблички, 
- строки, 
- столбца

user posted image эсскиз конечно ОЧЕНЬ от руки, но разобрать смысл мона

Код

Connection conn=HibernateUtil.getConnection();
    String query = "SELECT item_eng FROM inv_stat_str WHERE id_parent=109";
    PreparedStatement statement = conn.prepareStatement(query);
        java.sql.ResultSet rs = statement.executeQuery();
        while (rs.next())
               {
               }
        rs.close();

а вот что дальше делать?...

Это сообщение отредактировал(а) WickedMan - 30.1.2008, 16:49
PM MAIL   Вверх
batigoal
Дата 30.1.2008, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



1) Я не понял, нафиг тут Hibernate, если ты всё равно работаешь через JDBC? 
2) Откуда ты вытащил этот код? Это JSP/сервлет/десктопное приложение?
3) смысл запроса SELECT item_eng FROM inv_stat_str WHERE id_parent=109 вообще туманен.

Это сообщение отредактировал(а) batigoal - 30.1.2008, 18:09


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
WickedMan
Дата 31.1.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



2.это JSP
3.запрос необходим для фильтрации



Это сообщение отредактировал(а) WickedMan - 5.2.2008, 15:35
PM MAIL   Вверх
WickedMan
Дата 31.1.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



АП, плз, отредактировал предыдущий пост
PM MAIL   Вверх
Zamuta
Дата 31.1.2008, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



WickedMan, давай разбираться. Для начала разберёмся с БД.

Судя по тому что ты пишешь ты плохо знаешь как JDBC так и Hibernate, только без обид. Поэтому будем разбираться на уровне JDBC.
Цитата
задача такая вывести данные из базы MySQL в виде:
- таблички, 
- строки, 
- столбца

Вот это вообще не понятно.

Цитата
эсскиз конечно ОЧЕНЬ от руки, но разобрать смысл мона

Это эскиз того что должно получиться или исходная БД?

Опиши подробнее структуру БД, например в виде CREATE TABLE name (...)

Цитата
out.print(rs.getString("f6,f7,f24,f34")+"<br/>");

Если f6,f7,f24,f34 это имена столбцов через запятую, то так делать нельзя. smile

Сначала попробуем получить тот набор данных который тебе нужен.
Код
String url = "jdbc:mysql://localhost:3306/shema_name";
        Connection con = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        try {
            // Инициализируем драйвер
            Class.forName("com.mysql.jdbc.Driver");
            // Создаём соединение
            con = DriverManager.getConnection(url, "javauser", "hotjava");
            // Создаём запрос к бд
            pst = con.prepareStatement("SELECT ...");
            // Выполняем запрос
            rs = pst.executeQuery();
            // Перебираем строки до последней
            while (rs.next()) {
            //rs.getXXX();
            }
            // Закрываемся
            pst = null;
            pst.close();
            rs = null;
            rs.close();
            con = null;
            con.close();
        } catch (java.lang.Exception ex) {
            ex.printStackTrace();
        }


Когда определишься со структурой БД и понять, что именно тебе нужно получить, тогда продолжим.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
WickedMan
Дата 1.2.2008, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



Цитата(Zamuta @  31.1.2008,  20:22 Найти цитируемый пост)
Судя по тому что ты пишешь ты плохо знаешь как JDBC так и Hibernate
 - да, к сожалению=(
эскиз - то что должно получиться

Цитата(Zamuta @  31.1.2008,  20:22 Найти цитируемый пост)
Если f6,f7,f24,f34 это имена столбцов через запятую, то так делать нельзя. 

а как надо? необходимо одновременно выводить значения из нескольких столбцов

данные из 1й таблицы мне вывести удалось, как выводить данные из второй, что бы не было дублирования переменных?



Это сообщение отредактировал(а) WickedMan - 5.2.2008, 15:37
PM MAIL   Вверх
Zamuta
Дата 2.2.2008, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



WickedMan, 
Цитата
эскиз - то что должно получиться

По первой таблице. Может оно конечно так должно быть, но мне не понятно зачем названия строк хранить в БД, такие вещи обычно хранят в статике на странице не доставая из БД, зачем лишние телодвижения ?
Цитата
а как надо? необходимо одновременно выводить значения из нескольких столбцов

Одновременно не получится  smile , только по очереди.
Ты пока не ответил какие именно данные тебе нужно получить и из какой таблицы, будем считать что все. Тогда так и пишешь
Код
SELECT * FROM `имя твоей таблицы`;


Код
 // Создаём запрос к бд
            pst = con.prepareStatement("SELECT * FROM `tbl_name`;");
            // Выполняем запрос
            rs = pst.executeQuery();
            // Перебираем строки до последней
            while (rs.next()) {
            //rs.getXXX();
            }

После выполнения запроса rs содержит результат выполнения запроса в виде набора строк, доступ к которым можно получить через rs.getXXX("col_name"), где ХХХ это тип получаемых данных. Например, для первой таблицы 
Код
// Создаём запрос к бд
            pst = con.prepareStatement("SELECT * FROM `inv_stat`;");
            // Выполняем запрос
            rs = pst.executeQuery();
            // Перебираем строки до последней
            while (rs.next()) {
                 String f6 = rs.getString("f6");
                 System.out.println(f6);
                 String f7 = rs.getString("f7");
                 System.out.println(f7);
            }

На эту тему советую почитать это

Цитата
данные из 1й таблицы мне вывести удалось, как выводить данные из второй, что бы не было дублирования переменных?

Какие данные, и с какими данными не было дублирования? 


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
WickedMan
Дата 4.2.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



Цитата(Zamuta @  2.2.2008,  02:15 Найти цитируемый пост)
По первой таблице. Может оно конечно так должно быть, но мне не понятно зачем названия строк хранить в БД, такие вещи обычно хранят в статике на странице не доставая из БД, зачем лишние телодвижения ?

к сожалению сами таблицы составлял не я, у меня просто готовый дамп.

из таблицы inv_stat_col надо выбрать столбeц item_eng, где id_parent=4,
из таблицы inv_stat_str выбрать столбец item_eng, где id_parent=109,
и из таблицы inv_stat выбрать столбики f6, f7, f24, f34, где id_str= от 1 до 17

причем значение каждой надо вывести в отдельную ячейку

Код

"SELECT item_eng FROM inv_stat_str WHERE id_parent=107" 
"SELECT item_eng FROM inv_stat_col WHERE id_parent=4"
"SELECT f6, f7 FROM inv_stat WHERE id_str>=1 AND id_str<=17"



Код

if (rs2!=null)
{
    while (rs2.next())
    {
        f6 = (rs2.getString("f6")+"<br/>");
        out.println(f6);
        f7 = (rs2.getString("f7")+"<br/>");
        out.println(f7);
    }
    rs2.close();
}

значения из f7 необходимо вывести в новый столбик, а в данном примере они продолжают выводиться в том же столбике что и f6

Это сообщение отредактировал(а) WickedMan - 5.2.2008, 13:19
PM MAIL   Вверх
Zamuta
Дата 5.2.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Цитата(WickedMan @  4.2.2008,  19:03 Найти цитируемый пост)
к сожалению сами таблицы составлял не я, у меня просто готовый дамп.

Никак не получается подобрать название твоей ситуации.  smile 
Цитата(WickedMan @  4.2.2008,  19:03 Найти цитируемый пост)
и из таблицы inv_stat выбрать столбики f6, f7, f24, f34, где id_str= от 1 до 17

Код
SELECT f6, f7, f24, f34 FROM inv_stat LIMIT 17 ; 

Если f6, f7, f24, f34 не NULL, то получишь первые 17 строк.

Цитата(WickedMan @  4.2.2008,  19:03 Найти цитируемый пост)
значения из f7 необходимо вывести в новый столбик, а в данном примере они продолжают выводиться в том же столбике что и f6

Могу лишь посоветовать бросить твою затею и пойти читать книжки. Также можно JSP - с чего начать?.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
WickedMan
Дата 5.2.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



спасибо конечно... но от этой "затеи" отказываться вариантов нет. в принципе некрасивым длинным кодом я выполнил большую часть задачи.. вот вывод в новый столбик осуществлю и все ОК будет... (а потом буду делать что б красиво было)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.