Pb d'insertion en java netbeans SOS
safista
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
je travaille avec java netbeans je veux insérer un enregistrement dans ma base de donnée concernant une table de 2 champs le 1 champ c'est ID_PRODUIT de type int et
DESIGNATIONPRODUITS de type string voila la requête que j'ai fait
public static boolean Produit_insert(String VDESIGNATIONPRODUITS) {
try {
String requete ="insert into produits(DESIGNATIONPRODUITS) values('" + VDESIGNATIONPRODUITS + "')";
st.executeUpdate(requete);
} catch (SQLException ex) {
Logger.getLogger(REQUETE_SQL.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
return true;
}
et dans la page ajoutproduit .java dans le bouton ajouter j'ai fait le code suivant qui incrémente la valeur de champ id_produit d'une façon automatique selon le nb d'enregistrements dans la base
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Produit rsjf=new Produit();
boolean fl=REQUETE_SQL.Produit_insert(designationproduit.getText());
if(fl==true){
String ii= REQUETE_SQL.Id_Dernier_produit();
Integer i;
try {
i = Integer.parseInt(ii)+1;
} catch (Exception e) {i=1;
}
idproduit.setText(i+"");
jTextField2.setText("");
designationproduit.setVisible(true);
}else{
javax.swing.JOptionPane.showMessageDialog(null,"erreur");
}
l'id ca s'affiche des l'ouverture de formulaire c bn mais le problème quand je clique sur boutton ajouter il me fait sortir des exceptions
surtout suroct. 03, 2013 2:32:52 AM dao.REQUETE_SQL Produit_insert
SEVERE: null
java.sql.SQLException: Field 'ID_PRODUIT' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1816)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1730)
at dao.REQUETE_SQL.Produit_insert(REQUETE_SQL.java:179)
at presentation.ajoutproduit.jButton1ActionPerformed(ajoutproduit.java:120)
at presentation.ajoutproduit.access$100(ajoutproduit.java:14)
at presentation.ajoutproduit$2.actionPerformed(ajoutproduit.java:50)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread la requête insert
DESIGNATIONPRODUITS de type string voila la requête que j'ai fait
public static boolean Produit_insert(String VDESIGNATIONPRODUITS) {
try {
String requete ="insert into produits(DESIGNATIONPRODUITS) values('" + VDESIGNATIONPRODUITS + "')";
st.executeUpdate(requete);
} catch (SQLException ex) {
Logger.getLogger(REQUETE_SQL.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
return true;
}
et dans la page ajoutproduit .java dans le bouton ajouter j'ai fait le code suivant qui incrémente la valeur de champ id_produit d'une façon automatique selon le nb d'enregistrements dans la base
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Produit rsjf=new Produit();
boolean fl=REQUETE_SQL.Produit_insert(designationproduit.getText());
if(fl==true){
String ii= REQUETE_SQL.Id_Dernier_produit();
Integer i;
try {
i = Integer.parseInt(ii)+1;
} catch (Exception e) {i=1;
}
idproduit.setText(i+"");
jTextField2.setText("");
designationproduit.setVisible(true);
}else{
javax.swing.JOptionPane.showMessageDialog(null,"erreur");
}
l'id ca s'affiche des l'ouverture de formulaire c bn mais le problème quand je clique sur boutton ajouter il me fait sortir des exceptions
surtout suroct. 03, 2013 2:32:52 AM dao.REQUETE_SQL Produit_insert
SEVERE: null
java.sql.SQLException: Field 'ID_PRODUIT' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1816)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1730)
at dao.REQUETE_SQL.Produit_insert(REQUETE_SQL.java:179)
at presentation.ajoutproduit.jButton1ActionPerformed(ajoutproduit.java:120)
at presentation.ajoutproduit.access$100(ajoutproduit.java:14)
at presentation.ajoutproduit$2.actionPerformed(ajoutproduit.java:50)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread la requête insert
A voir également:
- Pb d'insertion en java netbeans SOS
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Il suffit de lire la trace de l'exception pour en trouver la cause, qui est une pure erreur SQL : Field 'ID_PRODUIT' doesn't have a default value
Tu as donc fait un
Tu peux régler le problème de deux manières, côté SQL en indiquant une valeur par défaut, par exemple un identifiant auto-incrémenté, soit côté Java, en spécifiant la valeur manquante :
Tu as donc fait un
insert into produits(DESIGNATIONPRODUITS) values('toto')sans préciser la valeur ID_PRODUIT...
Tu peux régler le problème de deux manières, côté SQL en indiquant une valeur par défaut, par exemple un identifiant auto-incrémenté, soit côté Java, en spécifiant la valeur manquante :
insert into produits(ID_PRODUIT,DESIGNATIONPRODUITS) values(42,'toto')