Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 30.03.2018, 10:50   #1
sambuca
Новичок
 
Регистрация: 30.03.2018
Сообщений: 1
Репутация: 10
По умолчанию Добавление в связующую таблицу (many to many) через JDBC? - Java БД/MySQL

Есть бд, в ней 2 сущности и связь many to many, создаю DAO для crud операций, далее возникает вопрос, я хочу создать developer и добавить ему skill. Как мне добавить данные в таблицу skills_developers? Не создавая доп. класс skills_developers.

MySQL
Код:
CREATE TABLE developers (
  id   INT          NOT NULL PRIMARY KEY,
  name VARCHAR(100) NOT NULL
  salary VARCHAR(100) NOT NULL
);
 
/*Create table skills*/
 
CREATE TABLE skills (
  id   INT          NOT NULL PRIMARY KEY,
  name VARCHAR(100) NOT NULL
);
 
/*Create table skill_developers with links*/
 
CREATE TABLE skills_developers (
  dev_id    INT NOT NULL,
  sk_id     INT NOT NULL,
  FOREIGN KEY (dev_id) REFERENCES developers (id),
  FOREIGN KEY (sk_id) REFERENCES skills (id)
);
Код:
public void addDevSkills(long id, long skillID) {
        List<Long> skillsID = new ArrayList<>();
        Statement statement = null;

        String sql1 = "SELECT * FROM skills";
        String sql2 = "INSERT  INTO skills_developers VALUES (?,?)";
        try (Connection connection = ApplicationJDBC.getConnection()) {
            statement = connection.createStatement();
            ResultSet rs = statement.executeQuery(sql1);
            while (rs.next()) {
               long i = rs.getLong("id");
                if (skillsID != null) {
                    skillsID.add(i);
                }
            }
            PreparedStatement preparedStatement = connection.prepareStatement(sql2);
            Developer developer = new Developer();
                for (Long sk_id : skillsID) {
                    if (sk_id == skillID) {
                        preparedStatement.setLong(1, developer.getId());
                        preparedStatement.setLong(2, sk_id);
                    }
                }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
sambuca вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записи в таблицу через AdoQuery natt23 БД в Delphi 2 30.10.2012 12:21
Добавление записи в таблицу через таблицу Anton911 БД в Delphi 0 14.05.2012 11:51
Добавление данных в таблицу через запросы!! Марат05 C++ Builder 6 09.05.2012 12:52
Добавление данных в таблицу через SQL Morfius01 БД в Delphi 18 19.12.2010 23:15
Добавление данных в таблицу через Delphi bablzz БД в Delphi 7 08.10.2010 00:38


20:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.