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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 30.03.2018, 09:50   #1
sambuca
Новичок
Джуниор
 
Регистрация: 30.03.2018
Сообщений: 1
По умолчанию Добавление в связующую таблицу (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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS