В моей базе данных у меня есть две таблицы под названием car and ad. В автомобиле у меня есть внешний ключ, ссылающийся на значение adId в объявлении. Когда я запускаю свой код, я не получаю никаких ошибок, но данные вставляются только в объявление, а не в автомобиль. Какие-либо предложения? Вот мой код:Нет ошибок, но данные не вставлены в таблицу
public void createAd(Ad ad, Car car) {
try {
Class.forName("org.postgresql.Driver");
if (con != null) {
ps = con.prepareStatement("INSERT INTO \"ad\"(\"title\", \"description\", \"author\", \"image\") VALUES (?, ?, ?, ?)");
ps.setString(1, ad.getTitle());
ps.setString(2, ad.getDescription());
ps.setString(3, ad.getAuthor());
ps.setBytes(4, ad.getImage());
ps.executeQuery();
ps = con.prepareStatement("SELECT currval('\"ad_adId_seq\"');");
rs = ps.executeQuery();
rs.next();
int adId = rs.getInt("currval");
ps = con.prepareStatement("INSERT INTO \"ad\"(\"adId\") VALUES (?);");
ps.setInt(1, adId);
ps.executeUpdate();
ad.setAdId(adId);
ps = con.prepareStatement("INSERT INTO \"car\"(\"distanceTraveled\", \"age\", \"condition\", \"vin\", \"brand\", \"price\", \"ad_adId\") VALUES (?, ?, ?, ?, ?, ?, ?)");
ps.setInt(1, car.getDistanceTraveled());
ps.setInt(2, car.getAge());
ps.setString(3, car.getCondition());
ps.setString(4, car.getVIN());
ps.setString(5, car.getBrand());
ps.setInt(6, car.getPrice());
ps.setInt(6, adId);
ps.executeQuery();
car.setAdId(adId);
}
} catch (Exception ex) {
System.out.println(ex);
}
}
Кроме того, вы используете 'ps.executeQuery()' для вставки в машину. Попробуйте 'ps.executeUpdate()' – DBug
Вероятно, ваш объект 'con' имеет значение null. Пожалуйста, покажите код, в котором вы также инициализируете объект соединения 'con'. – dan