Нужно реализовать запрос sql к таблицам из java через jdbc. Не работают FOREIGN KEY?

169
10 февраля 2022, 22:30


Приложен код:

  public class contactQuery {
            public boolean insertContact(Contact cont)
            {
                boolean ContactIsCreated = true;
                try (Connection connection = DriverManager.getConnection("jdbc:sqlite:mase.db", "root", "root")){
                   try(PreparedStatement ps = connection.prepareStatement("INSERT INTO Users ( First_Name, Last_Name) VALUES (?, ?)"))
                   {
                       ps.setString(1, cont.getFirst_name());
                       ps.setString(2, cont.getLast_name());
                       ps.executeUpdate();
                       if(ps.executeUpdate()!=0){
                           JOptionPane.showMessageDialog(null, "New Contact Added1");
                           ContactIsCreated = true;
                       }
                       else{
                           JOptionPane.showMessageDialog(null,"something wrong");
                           ContactIsCreated = false;
                       }
                   }
                   catch(SQLException ex)
                   {
                       Logger.getLogger(contactQuery.class.getName()).log(Level.SEVERE,null,ex);
                   }
                    try(PreparedStatement ps = connection.prepareStatement("INSERT INTO PhoneNumbers (NumberPrefix,Number) VALUES (?,?)")) {
                        ps.setString(1, cont.getNumberPrefix());
                        ps.setString(2, cont.getNumber());
                        ps.executeUpdate();
                        if (ps.executeUpdate() != 0) {
                            JOptionPane.showMessageDialog(null, "New Contact Added2");
                            ContactIsCreated = true;
                        } else {
                            JOptionPane.showMessageDialog(null, "something wrong");
                            ContactIsCreated = false;
                        }
                    }
                    catch(SQLException ex)
                    {
                        Logger.getLogger(contactQuery.class.getName()).log(Level.SEVERE,null,ex);
                    }
                    try(PreparedStatement ps = connection.prepareStatement("INSERT INTO SRates (Rates) VALUES (?)"))
                    {
                        ps.setString(1, cont.getRates());
                        ps.executeUpdate();

                        if (ps.executeUpdate() != 0) {
                            JOptionPane.showMessageDialog(null, "New Contact Added3");
                            ContactIsCreated = true;
                        } else {
                            JOptionPane.showMessageDialog(null, "something wrong");
                            ContactIsCreated = false;
                        }
                    }
                    catch(SQLException ex)
                    {
                        Logger.getLogger(contactQuery.class.getName()).log(Level.SEVERE,null,ex);
                    }
                    try(PreparedStatement ps = connection.prepareStatement("INSERT INTO Payments ( Amount, PaymentDate, PaymentPlace ) VALUES (?,?,?) "))
                    {
                        ps.setInt(1, cont.getContractsId());
                        ps.setString(2, cont.getAmount());
                        ps.setString(3, cont.getPaymentDate());
                        ps.setString(4, cont.getPaymentPlace());
                        ps.executeUpdate();
                        if (ps.executeUpdate() != 0) {
                            JOptionPane.showMessageDialog(null, "New Contact Added4");
                            ContactIsCreated = true;
                        } else {
                            JOptionPane.showMessageDialog(null, "something wrong");
                            ContactIsCreated = false;
                        }
                    }
                    catch(SQLException ex)
                    {
                        Logger.getLogger(contactQuery.class.getName()).log(Level.SEVERE,null,ex);
                    }
                    try(PreparedStatement ps = connection.prepareStatement("INSERT INTO Contracts ( StartDate, Balance, IsActive) VALUES (?,?,?)")) {
                        ps.setString(1, cont.getStartDate());
                        ps.setString(2, cont.getBalance());
                        ps.setString(3, cont.getIsActive());
                        if (ps.executeUpdate() != 0) {
                            JOptionPane.showMessageDialog(null, "New Contact Added5");
                            ContactIsCreated = true;
                        } else {
                            JOptionPane.showMessageDialog(null, "something wrong");
                            ContactIsCreated = false;
                        }
                    }
                    catch(SQLException ex)
                        {
                            Logger.getLogger(contactQuery.class.getName()).log(Level.SEVERE,null,ex);
                        }

                }
                catch(SQLException ex)
                {
                    Logger.getLogger(contactQuery.class.getName()).log(Level.SEVERE,null,ex);
                }
                return ContactIsCreated;
            }
        }
Answer 1

Как я понял речь идет о том как создать запрос. Только так и не написали что нужно отобрать. Предположу, что вы хотите собрать общую вьюху, тогда это будет выглядеть так

  SELECT 
      тут перечисляете через запятую поля какие нужны
  FROM payments p
      LEFT JOIN contracts c ON p.ContractId = c.id
      LEFT JOIN users u ON u.id = c.UserId
      LEFT JOIN PhoneNumbers pn ON pn.id = c.PhoneNumberId
      LEFT JOIN Rates r ON r.id = c.RateId  

Ключи тут вообще не причем

READ ALSO
Проблема с преобразованием Double в String(Java)

Проблема с преобразованием Double в String(Java)

возникла проблемаПри загрузке таблицы из XLSX файла, я получаю вместо String значения, значения Double(так как библиотека не видит заданный тип элементов...

100
Проблемы с кодировкой Spring Boot

Проблемы с кодировкой Spring Boot

При отправки формы русские символы заменяются на знаки вопроса (?)

144
Парсинг нескольких страниц

Парсинг нескольких страниц

Подскажите где у меня ошибка

95
Как в wordpress в плагине woocommerce добавить свой способ сортировки товаров?

Как в wordpress в плагине woocommerce добавить свой способ сортировки товаров?

В woocommerce доступны функции сортировки по цене и рейтингуНо как добавить сортировку по тому, есть ли на товар скидка и по произвольному полю?

65