DatabaseException oui mais ou ???

Résolu
greglover Messages postés 58 Date d'inscription mardi 16 janvier 2007 Statut Membre Dernière intervention 10 mars 2008 - 21 janv. 2007 à 21:24
greglover Messages postés 58 Date d'inscription mardi 16 janvier 2007 Statut Membre Dernière intervention 10 mars 2008 - 22 janv. 2007 à 00:13
Bonsoir,

j'ai un soucis avec ce code source, Eclipse me sort un DataBaseException mais je ne vois pas du tout pourquoi.

J'ai rien changé et cela marchait il y a pas longtemps.

J'ai testé la requête sous phpmyadmin et elle passe !

Merci d'avance pour votre aide

Voici le code de mon bouton Valider :

    /**
     * This method initializes btn_valider   
     *    
     * @return javax.swing.JButton   
     */
    private JButton getBtn_valider() {
        if (btn_valider == null) {
            btn_valider = new JButton();
            btn_valider.setText("Valider");
            btn_valider.setForeground(new Color(108, 3, 125));
            btn_valider.setBounds(new Rectangle(689, 495, 83, 26));
            btn_valider.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    DataBaseImpl base = new DataBaseImpl();
                    base.setParametre("127.0.0.1","root","","bdd");
                    try
                    {
                        base.open();
                        //insertion de donnée
                        String rq="INSERT INTO `enfant` ( `id_enfant` , `nom_enfant` , `prenom_enfant` , `date_de_naissance_enfant` , `classe_enfant` , `adresse1_enfant` , `cp_ville1_enfant` , `telephone_domicile1_enfant` , `adresse2_enfant` , `cp_ville2_enfant` , `telephone_domicile2_enfant` , `entree_enfant` , `sortie_enfant` , `prise_en_charge_enfant` , `enfant_a_charge_enfant` , `enfant_au_college_enfant` , `situation_familiale_enfant` , `responsable_legal1_enfant` , `responsable_legal2_enfant` , `profession_pere_enfant` , `telephone_portable_pere_enfant` , `telephone_professionnel_pere_enfant` , `profession_mere_enfant` , `telephone_portable_mere_enfant` , `telephone_professionnel_mere_enfant` , `taxe_habitation_enfant` , `eau_enfant` , `loyer_enfant` , `edfgdf_enfant` , `autres_enfant` , `garderie_enfant` , `divers_enfant` )VALUES ('', '"+txtf_nom.getText()+"', '"+txtf_prenom.getText()+"', '"+txtf_date_de_naissance.getText()+"', '"+txtf_classe.getText()+"', '"+txtf_adresse1.getText()+"', '"+txtf_cp_ville1.getText()+"', '"+txtf_telephone_domicile1.getText()+"', '"+txtf_adresse2.getText()+"', '"+txtf_cp_ville2.getText()+"', '"+txtf_telephone_domicile2.getText()+"', '"+txtf_entree.getText()+"', '"+txtf_sortie.getText()+"', '"+txt_prise_en_charge.getText()+"', '"+txtf_enfant_a_charge.getText()+"', '"+txtf_enfant_au_college.getText()+"', '"+txtf_situation_familiale.getText()+"', '"+txtf_responsable_legal1.getText()+"', '"+txtf_responsable_legal2.getText()+"', '"+txtf_profession_pere.getText()+"', '"+txtf_telephone_portable_pere.getText()+"', '"+txtf_telephone_professionnel_pere.getText()+"', '"+txtf_profession_mere.getText()+"', '"+txtf_telephone_portable_mere.getText()+"', '"+txtf_telephone_professionnel_mere.getText()+"', '"+check_thab.isSelected()+"', '"+check_eau.isSelected()+"' , '"+check_loyer.isSelected()+"', '"+check_edfgdf.isSelected()+"' , '"+check_autres.isSelected()+"', '"+check_garderie.isSelected()+"' , '"+txt_divers.getText()+"')";
                        base.execute(rq);
                        base.close();
                        JOptionPane.showMessageDialog(null, "Ajout de l'enfant '"+txtf_nom.getText().toUpperCase()+" "+txtf_prenom.getText()+"' effectué", "Confirmation", JOptionPane.INFORMATION_MESSAGE);
                    }
                    catch(DataBaseException f)
                    {
                        JOptionPane.showMessageDialog(null, "Problème de base de donnée !!! ", "Erreur", JOptionPane.ERROR_MESSAGE);
                    }
                    Menu un_menu=new Menu();
                    menu.setVisible(true);
                }
            });
        }
        return btn_valider;
    }

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 janv. 2007 à 22:08
non le null veut dire que c'est le getMessage qui te renvoie un null, et pas qu'il s'agit d'un problème de null dans un champ de la bdd

essaye à la limite un : f.printstacktrace(); voir sur quelle ligne est l'erreur.
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 janv. 2007 à 21:29
essaye déjà d'afficher le message d'erreur voir ce que ca donne :
catch(DataBaseException f)
                    {
               
        JOptionPane.showMessageDialog(null, "Problème de base de donnée
!!! " + f.getMessage(), "Erreur", JOptionPane.ERROR_MESSAGE);
                    }
0
greglover Messages postés 58 Date d'inscription mardi 16 janvier 2007 Statut Membre Dernière intervention 10 mars 2008
21 janv. 2007 à 21:36
je viens de le faire et cela m'ajoute le mot "null" dans ma boite de dialogue.

j'ai pensé a un null pointer exception généré car je teste mon ajout en ne mettant que le nom et le prenom (il y a plus 25 champs !!!)

donc j'ai testé en remplissant tout et cela ne change rien.

merci
0
greglover Messages postés 58 Date d'inscription mardi 16 janvier 2007 Statut Membre Dernière intervention 10 mars 2008
21 janv. 2007 à 22:19
sa me sors cela :

DataBaseException
    at DataBaseImpl.execute(DataBaseImpl.java:131)
    at Ajout$3.actionPerformed(Ajout.java:630)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Cela veut dire que l'erreur vient de DataBaseImplement ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
greglover Messages postés 58 Date d'inscription mardi 16 janvier 2007 Statut Membre Dernière intervention 10 mars 2008
21 janv. 2007 à 22:39
Donc si j'ai bien compris une erreur est généré dans ajout a la ligne 630
 soit :                         base.execute(rq);

parce qu'il y a un problème dans DataBaseException a la ligne 131
soit :                         throw new DataBaseException(e);

le                         throw new DataBaseException(e); fait parti d'un catch SQLException

Est ce que cela veut dire que c'est ma requête qui n'est pas bonne ?

pourtant je l'ai testé
0
greglover Messages postés 58 Date d'inscription mardi 16 janvier 2007 Statut Membre Dernière intervention 10 mars 2008
22 janv. 2007 à 00:13
j'ai fais un printstacktrace sur l'erreur dans la classe DataBaseImpl et récupérer le message suivant :

Data truncated for column 'id_enfant' at row 1

j'ai fais des recherches et trouvé que ce n'était qu'un warning car je laissais un blanc dans la value de id_enfant alors qu'il ne doit pas être nul. Etant donné qu'il est en auto_increment je l'ai enlevé de l'INSERT INTO.

Maintenant l'erreur s'est déplacé sur un autre champ lui aussi d'une valeur numérique (hasard ou pas ???), je prends donc la peine de le remplir lors du test et hop sa passe maintenant.

Récapitulatif : l'erreur venait d'une SQLException transformé en DataBaseException par ma classe DataBaseImplement

Merci à toi Darksidious, je suis débutant et tu m'a donné 2 instructions précieuses pour détecter l'origine des bugs.

A+
0
Rejoignez-nous