DAO méthode d'ajout: problème de contrainte
Résolu/Fermé
Rune188
Messages postés
67
Date d'inscription
lundi 20 février 2017
Statut
Membre
Dernière intervention
29 janvier 2024
-
25 oct. 2020 à 18:09
Rune188 Messages postés 67 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024 - 26 oct. 2020 à 14:07
Rune188 Messages postés 67 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024 - 26 oct. 2020 à 14:07
A voir également:
- #1215 - impossible d'ajouter des contraintes d'index externe
- Chkdsk disque dur externe - Guide
- Ajouter un compte gmail - Guide
- Ajouter signature word - Guide
- Impossible d'ajouter un ami sur facebook - Guide
- Index telephonique france - Guide
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
25 oct. 2020 à 19:03
25 oct. 2020 à 19:03
Bonjour,
Lorsque tu ajoutes un Bookfile il faut que l'idBook que tu passes en paramètre corresponde à un Book déjà inséré en base.
Tu devrais inverser ce morceau de code :
Pour avoir l'ajout du Book d'abord :
Lorsque tu ajoutes un Bookfile il faut que l'idBook que tu passes en paramètre corresponde à un Book déjà inséré en base.
Tu devrais inverser ce morceau de code :
for (int i = 0; i < nbr; i++) { bf.addNewBookFile(idLib,idBook); } ps.executeUpdate();
Pour avoir l'ajout du Book d'abord :
ps.executeUpdate(); for (int i = 0; i < nbr; i++) { bf.addNewBookFile(idLib,idBook); }
Rune188
Messages postés
67
Date d'inscription
lundi 20 février 2017
Statut
Membre
Dernière intervention
29 janvier 2024
25 oct. 2020 à 21:14
25 oct. 2020 à 21:14
Merci de m'avoir répondu
J'ai modifié la méthode addNewBook mais malheureusement le problème reste le même :(
J'ai modifié la méthode addNewBook mais malheureusement le problème reste le même :(
@Override
public void addNewBook(String isbn, String title, String author, String editor, String genre, String type, double refoundPrice, boolean ebook, String format,int nbr,int idLib) {
Connection c = MySqlDaoFactory.getInstance().getConnection();
PreparedStatement ps = null;
String sql = "INSERT INTO book(isbn,title,author,editor,genre,type,refoundPrice,ebook,format) VALUES (?,?,?,?,?,?,?,?,?)";
try{
ps=c.prepareStatement(sql);
ps.setString(1, isbn);
ps.setString(2, title);
ps.setString(3, author);
ps.setString(4, editor);
ps.setString(5, genre);
ps.setString(6, type);
ps.setDouble(7, refoundPrice);
ps.setBoolean(8, ebook);
ps.setString(9, format);
ps.executeUpdate();
BookFile bf = new BookFile();
Book b = getLastBookEntry();
int idBook = b.getIdBook()+1;
for (int i = 0; i < nbr; i++) {
bf.addNewBookFile(idLib,idBook);
}
} catch (SQLException ex) {
Logger.getLogger(MySqlDaoBook.class.getName()).log(Level.SEVERE, null, ex);
}
finally{
MySqlDaoFactory.closeStatement(ps);
MySqlDaoFactory.closeConnection(c);
}
}
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
26 oct. 2020 à 08:43
26 oct. 2020 à 08:43
Lorsque tu ajoutes un Bookfile il faut que l'idBook que tu passes en paramètre corresponde à un Book déjà inséré en base.
Pourquoi avoir ajouté +1 à l'idBook du dernier livre inséré ? Cela signifie que tu vas transmettre un id qui ne correspond à aucun livre...
Book b = getLastBookEntry(); int idBook = b.getIdBook()+1;
Pourquoi avoir ajouté +1 à l'idBook du dernier livre inséré ? Cela signifie que tu vas transmettre un id qui ne correspond à aucun livre...
Rune188
Messages postés
67
Date d'inscription
lundi 20 février 2017
Statut
Membre
Dernière intervention
29 janvier 2024
Modifié le 26 oct. 2020 à 14:08
Modifié le 26 oct. 2020 à 14:08
Problème résolu !
Merci pour ton aide :)
Merci pour ton aide :)