Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / ResultSet / 25 сообщений из 26, страница 1 из 2
22.03.2017, 15:33
    #39424987
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Приветствую всех!
ребята подскажите как правильно организовать РезалтСет если,
класс имеет такие атрибуты:
Код: java
1.
2.
3.
4.
5.
private Long id;
    private String fio;
    private SprGroup sprGroup;
    private SprTypeUch sprTypeUch;
    private List<Posesh> poseshList;



сам РезалтСет делал вот так:
Код: java
1.
2.
3.
4.
while (rs.next()) {
                std = new SprStudent(rs.getLong("id"), rs.getString("fio"), ... , ... , ...);
                listStd.add(std);
            }



но не совсем ясно что должен быть вместо точек...
...
Рейтинг: 0 / 0
22.03.2017, 16:20
    #39425041
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Мы понятия не имеем о том что у вас в resultset и что у вас за типы данных. Но вы спрашиваете как натянуть одно на другое.
Может расскажете что вернул запрос и что у вас за другие типы энумы?
...
Рейтинг: 0 / 0
22.03.2017, 16:55
    #39425084
ponuch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффар,

должны быть соответствующие параметры класса, значения которых вы получите из rs
...
Рейтинг: 0 / 0
22.03.2017, 16:56
    #39425089
ponuch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
ponuchМузаффар,

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

тьфу.
...
Рейтинг: 0 / 0
22.03.2017, 18:58
    #39425183
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Blazkowicz,

скажем создал юмл классы грубо говоря Группы и Студенты
Group (Long id, String grp_name) (1)----->(*) Student (Long id, String FIO) выложил картинку

и так в конечном итоге получил вот такие классы

класс Student
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class Student {

    private Long id;
    private String fio;
    private SprGroup sprGroup;
    
    public SprStudent() {
    }

    public SprStudent(Long id, String fio, SprGroup sprGroup) {
        this.id = id;
        this.fio = fio;
        this.sprGroup = sprGroup;
    }
//дальше методы гет и сет



класс Group
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class SprGroup implements Serializable{
    private Long id;
    private String name;
    private List<Student> listStud;

    public SprGroup() {
    }

    public SprGroup(Long id, String name, List<Student> listStud) {
        this.id = id;
        this.name = name;
        this.listStud = listStud;
    }
//дальше методы гет и сет


т.е. эти классы почти что энтити классы только без аннотаций...
а дальше хочу получить содержимое таблиц
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
....
String sql = "select id, fio, id_group from student";
        ConnDB connDB = new ConnDB();
        try {
            conn = connDB.getConn();
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                std = new Student(rs.getLong("id"), rs.getString("fio"),
                        rs.getObject("id_group", Group.class)); // именно в этой строке что должен быть? 
                listStd.add(std);
            }
....



и какой будет запрос селект для Группы?

З.Ы. да знаю что с ормами намного проще было бы но просто хочу понять как насколько упрощают орм...

Заранее благодарен!
...
Рейтинг: 0 / 0
22.03.2017, 23:44
    #39425296
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Поверьте на слово. ОРМ упрощает код офигеть как. Особенно если у вас не одна ассоциация а десяток. В качестве альтернативы предлагаю гуглить примеры ActiveRecord как JDBC, так и jOOQ. Он и QueryDSL это хороши способ не использовать ORM, но при этом и избавится от тонн boilerplate кода JDBC
...
Рейтинг: 0 / 0
23.03.2017, 00:33
    #39425317
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
BlazkowiczПоверьте на слово. ОРМ упрощает код офигеть как. Особенно если у вас не одна ассоциация а десяток.
конечно с Вами соглашусь!
авторВ качестве альтернативы предлагаю гуглить примеры ActiveRecord как JDBC, так и jOOQ. Он и QueryDSL это хороши способ не использовать ORM, но при этом и избавится от тонн boilerplate кода JDBC
хорошо.

просто хотел бы посмотреть на сколько огромным будет обычный запрос.
да конечно можно было все это реализовать без ассоциаций тогда не надо было бы всякие листы который и возник такой вопрос... но хотел исходить именно со стороны uml )))
...
Рейтинг: 0 / 0
23.03.2017, 09:37
    #39425425
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффари какой будет запрос селект для Группы?
вы наверно хотели сказать объёдинённое множество студент-группа?
Код: java
1.
2.
SELECT 1,2,2 FROM Table1
JOIN Table2 on Table1.ID = Table1.ID


Непонятен ваш вопрос и сабж в целом.
авторпросто хотел бы посмотреть на сколько огромным будет обычный запрос.
огромный?
Но это не значит что ОРМ плохо и так надо писать).
...
Рейтинг: 0 / 0
23.03.2017, 10:11
    #39425463
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Petro123,

Petro123вы наверно хотели сказать объёдинённое множество студент-группа?
Код: plsql
1.
2.
SELECT 1,2,2 FROM Table1
JOIN Table2 on Table1.ID = Table1.ID



не совсем...
вот к примеру если создаем энтити из бд то получим почти такую структуру как я уже привел ранее только там с аннотациями, и дальше когда пишем JPQL запрос скажем так
Код: java
1.
select o from Table o


то потом мы можем получить связанные объекты к Table, т.е. можно будет получить уже List<Table2> (в зависимости от связи между Table и Table2) или я ошибаюсь?
Petro123Непонятен ваш вопрос и сабж в целом.

может я не совсем правильно выразился? скажем создадим диаграмму классов экспортируем в джава классы создаются почти те классы которые ранее написал вот дальше как быть с выводом данных из таблиц?

Petro123Но это не значит что ОРМ плохо и так надо писать).

я и не говорю что ОРМ плох.
...
Рейтинг: 0 / 0
23.03.2017, 10:18
    #39425467
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффарскажем создал юмл классы грубо говоря Группы и Студенты
Group (Long id, String grp_name) (1)----->(*) Student (Long id, String FIO) выложил картинку

и так в конечном итоге получил вот такие классы



Мне кажется вы немного перемудрили.
Объект группа имеет список студентов, это правильно.
Но если вы читаете из рекордсета запись о студенте, и получаете по идентификатору объект группы, то где заполняется список студентов для этой группы???
Он будет пуст в вашем случае, что неправильно.
...
Рейтинг: 0 / 0
23.03.2017, 10:23
    #39425473
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
или же просто обходит ЮМЛ, тогда можно не думать об ассоциациях и в Группе List<Student> не будет а у Студента будет просто id_group вместо объекта...

тогда появится другой вопрос зачем ЮМЛ?
...
Рейтинг: 0 / 0
23.03.2017, 10:26
    #39425474
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффар,
вы скрещиваете ежа с ужом.
ResultSet работает БЕЗ ОРМ.
Так:
- вам нужна табличка перечень студентов с группами
- вы ДЛЯ этого ВИ-юз кейса делаете ResultSet
Код: java
1.
2.
SELECT id, g.name, s.name  FROM Table1 s
JOIN Table2 g on g.ID = s.ID


- теперь любым способом переправляете список для таблы на клиента напр. HTML
- хотите перелейте в POJO объекты, хотите JSON
Это без ОРМ.
...
Рейтинг: 0 / 0
23.03.2017, 10:27
    #39425477
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффартогда появится другой вопрос зачем ЮМЛ?
базу проектировать.
...
Рейтинг: 0 / 0
23.03.2017, 10:55
    #39425515
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Petro123,

значить грубо говоря ЮМЛ ни к чему?
...
Рейтинг: 0 / 0
23.03.2017, 10:58
    #39425520
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
МузаффарPetro123,
значить грубо говоря ЮМЛ ни к чему?
если в голове можешь удерживать все связи, то ДА.
UML для правильного и большого процесса проектирования....с документацией.
Ещё генераторы классов, но редко imho.
...
Рейтинг: 0 / 0
23.03.2017, 10:59
    #39425521
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Petro123базу проектировать.

для этого существуют более удобные инструменты, или не?
...
Рейтинг: 0 / 0
23.03.2017, 11:00
    #39425523
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Вообще, UML это нотация для рисования (вариант).
Поэтому вопросы странные.
...
Рейтинг: 0 / 0
23.03.2017, 11:00
    #39425524
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффардля этого существуют более удобные инструменты, или не?
да.
ErWin
...
Рейтинг: 0 / 0
23.03.2017, 11:03
    #39425527
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Petro123,

значить класс Студент должен был вот таком виде?:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Student {

    private Long id;
    private String fio;
    private int idGr;
    
    public SprStudent() {
    }

    public SprStudent(Long id, String fio, int idGr) {
        this.id = id;
        this.fio = fio;
        this.idGr=idGr;
    }



а Группа вот таком
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class SprGroup implements Serializable{
    private Long id;
    private String name;

    public SprGroup() {
    }

    public SprGroup(Long id, String name) {
        this.id = id;
        this.name = name;
    }
...
Рейтинг: 0 / 0
23.03.2017, 11:03
    #39425528
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
МузаффарPetro123,

значить грубо говоря ЮМЛ ни к чему?
Все зависит от масштаба архитектуры.
Вы же не будете пилить полочку на балкон бензопилой.
В деревья валить простой ножовкой.
Всему свой инструмент.
...
Рейтинг: 0 / 0
23.03.2017, 11:15
    #39425547
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
SQL2008,

с Вами согласен, пока что нигде не встречал что разработчики писали диаграммы а потом уже приступили к кодингу... возможно в больших конторах так и делаются... и к тому же обычно хорошо придуманная база над ним энтити и т.д. но без использования ЮМЛ... или я ошибаюсь?
к тому же нигде в примерах не встречал такого подхода
...
Рейтинг: 0 / 0
23.03.2017, 11:19
    #39425551
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
SQL2008,
конечно. Я выше сказал - в крупных проектах. Это "управление процессом проектирования".
Музаффарзначить класс Студент должен был вот таком виде?:
Если это означает мою архитектуру выше что я привёл, то там классы вообще не нужны.
Разве не понял? Там JSON.
...
Рейтинг: 0 / 0
23.03.2017, 11:21
    #39425554
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффар,
- бери хибер и делай маппинг. Тогда всё понятно какие у тебя классы должны быть.
...
Рейтинг: 0 / 0
23.03.2017, 11:24
    #39425557
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Petro123Если это означает мою архитектуру выше что я привёл, то там классы вообще не нужны.
ясно получается сервлет который извлекает данные из бд, обрабатывает, передает дальше во вью... и все?
Petro123Разве не понял? Там JSON.
по сути понял, что не надо мучить себя и тем более остальных?
...
Рейтинг: 0 / 0
23.03.2017, 11:54
    #39425591
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ResultSet
Музаффарясно получается сервлет который извлекает данные из бд, обрабатывает, передает дальше во вью... и все?
да. Самый простой вариант.
Музаффарпо сути понял, что не надо мучить себя и тем более остальных?
Суть в том, что если есть
while (rs.next()) {
то зачем тебе переливать в другой формат. Надо определиться.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / ResultSet / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]