powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по JDBC
8 сообщений из 8, страница 1 из 1
вопрос по JDBC
    #33935021
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите плиз как правильно делать такую обычную вещь.
Надо выбрать данные из таблицы например Users и таблицы Jobs,
которые соединены между собой many-to-many через таблицу
User_Job.
Ну вот делаю запрос
Код: plaintext
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.
26.
27.
28.
29.
  String query = "SELECT user_id, user_name FROM Users;";
  Connection con = getConnection(url, login, password);
  Statement  st = con.createStatement();
  ResultSet rs = st.executeQuery(query);
   while  (rs.next())
  {
     int  user_id = rs.getInt( 1 );
    String name = rs.getString( 2 );
    //И тут мне надо выбрать по user_id все записи из таблицы User_Job и Jobs!
    //То есть так примерно?
    List jobs = getJobsByUserId(Connection con, int  userId);
     // можно передавать List jobs = getJobsByUserId(Statement  st ,int userId);
    
  }
    rs.close();st.close();  con.close()
//И сам метод 
   private  List getJobsByUserId(Connection con, int  userId)
  { 
      PreparedStatement prepSt= con.prepareStatement(
    "SELECT j.job_name FROM Jobs j, User_Job  uj 
                      WHERE uj.job_id = j.job_id AND   uj.user_id = ?";
      prepSt.setInt( 1 ,userId);
      ResultSet rs = prepSt.executeQuery();
       while (rs.next())
     { 
        create List from ResultSet
     }
      return  created List
   }
Получается очень громоздко!
Может есть более элегантный способ именно при помощи чистого JDBC?
...
Рейтинг: 0 / 0
вопрос по JDBC
    #33935041
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Oracle можно сделать запрос с inline-курсором.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
вопрос по JDBC
    #33935046
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторList jobs = getJobsByUserId(Connection con,int userId);
// можно передавать List jobs = getJobsByUserId(Statement st ,int userId)?
Это не утвеождение а вопрос.
...
Рейтинг: 0 / 0
вопрос по JDBC
    #33935049
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно.
К сожалению у клиента MySQL :(
...
Рейтинг: 0 / 0
вопрос по JDBC
    #33935113
chernolyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитай книжку про SQL. Есть в стандартной спецификации SQL такая вещь как объединения.
...
Рейтинг: 0 / 0
вопрос по JDBC
    #33935129
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а как потом выбрать эти данные из ResultSet
Код: plaintext
1.
2.
3.
4.
5.
6.
  while (resultSet.next()
  {
       int  id = resultSet.getInt( 1 );
      String userName = resultSet.getString( 2 );
      String  jobName = resultSet.getString( 3 );
  }

И получиться что из базы приходит десять кортежей типа
1- Иванов - Программист
1 - Иванов - Администратор
1- Иванов - Культурист
А мне в прнципе это надо чтоб прочитать 1- Иванов, сделать User user = new User(1, "Иванов"):
потом по 1 прочитать и сделать List listOfJobs.add("Программист","Администратор","Культурист");
и наконец user.setJobs(listOfJobs).
...
Рейтинг: 0 / 0
вопрос по JDBC
    #33935135
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это в случае запроса
select u.user_id, u.user_name, j.job_name from users u
left join user_jobs uj on uj.user_id = u.user_id
left join jobs j on j.job_id = uj.job_id
...
Рейтинг: 0 / 0
вопрос по JDBC
    #33935271
ПсоП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что нужно сделать?
Может это устроит?

SELECT uj.user_id, j.job_name

FROM User_Job uj, Jobs j

where uj.job_id = j.job_id

order by uj.user_id
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по JDBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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