IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Erreur lors d'un insert avec jdbc sur mySQL..


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut Erreur lors d'un insert avec jdbc sur mySQL..
    Bonsoir, j'ai un problème , et j'ai cherché partout mais je n'ai trouvé aucune solution! Observez ce code, je vais vous dire ce qui cloche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    import java.awt.Frame;
    import java.sql.*;
     
    import javax.swing.JOptionPane;
     
    class ThreadJDBC extends Thread implements Runnable
    {        
     
            String heure_arrivee;
            int temps_guichet;        
     
     
            public ThreadJDBC(String heure_arrivee, int temps_guichet){                
                this.heure_arrivee = heure_arrivee;
                this.temps_guichet = temps_guichet;
            }       
     
     
            public void run()  {
     
                try {
     
                // Connect to the local database
                String url = "jdbc:mysql://localhost/test"  ;
                String login = "root";
                String password = "";      
     
                Connection conn = DriverManager.getConnection(url,login,password);      
     
                // Query the employee names
                Statement stmt = conn.createStatement ();
     
                JOptionPane.showMessageDialog(new Frame(),"heure_arrivee:"+heure_arrivee);
                JOptionPane.showMessageDialog(new Frame(),"temps_guichet:"+temps_guichet);
                JOptionPane.showMessageDialog(new Frame(),"INSERT INTO client (heure_arrivee,temps_guichet) VALUES (\"" + heure_arrivee + "\"," + temps_guichet + ")");
     
     
                // fonctionne !
                //String requete = "CREATE TABLE client (id_client INT NOT NULL AUTO_INCREMENT,heure_arrivee varchar(8) NOT NULL,temps_guichet INT NOT NULL,temps_file INT NOT NULL,PRIMARY KEY(id_client) )";
                //String requete = "drop table client";
                //String requete = "describe client";
                // String requete = "select * from client";
               // String requete = "update client set temps_guichet= " + temps_guichet +" where temps_guichet=20";
     
                // marche pas!!
                String requete = "INSERT INTO client (heure_arrivee,temps_guichet) VALUES ('22:44:55',3)";
                //String requete = "INSERT INTO client (heure_arrivee,temps_guichet) VALUES (\"" + heure_arrivee + "\"," + temps_guichet + ")";
     
     
               System.out.println(requete); 
     
               stmt.execute(requete);
     
     
     
               /* ResultSet rset = stmt.executeQuery (requete);
                // Print the name out
                while (rset.next ())
                   System.out.println (rset.getString (1));
            
                //close the result set, statement, and the connection
                rset.close();
                */
     
                stmt.close();
                conn.close();
                }
                catch ( Exception E ) {
                    JOptionPane.showMessageDialog(new Frame(),"Impossible de se connecter à la base de donnée!");
                }  
            }     
    }
    Lors je lance ce thread, les instructions du catch sont exécutés!!
    Ceci est dû à l'insert qui ne se déroule pas normalement!!

    En essayant d'insérer cette ligne directement sous mySQL en tant qu'une requête normale, elle s'exécute !
    J'ai fait pas mal d'exemple que vous pouvez voir, tout marche, sauf l'opération insert!

    Si quelqu'un trouve pourquoi cela ne marche pas, qu'il réponde à ce message, ce sera mon sauveur! Je dois un projet et je ne peux aller plus loin ..

    Bonne soirée, berni;

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    temps_file INT NOT NULL !!!!

    Dans ton insert, il y a pas de valeur pour ce champ
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    J'aurais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String requete = "INSERT INTO client (heure_arrivee,temps_guichet, temps_file) VALUES ('22:44:55',3, 60)";

    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Dans un premier temps, il faudrait déjà savoir quelle est l'erreur...
    Brut de fonderie, c'est difficile de répondre, l'erreur peut venir de l'acquisition de la connexion comme de l'exécution de la requête.
    Ce qu'il faudrait faire, c'est rajouter la cause de l'erreur dans ton message, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
    {
       ...
    }
    catch ( Exception E ) 
    {
       JOptionPane.showMessageDialog(new Frame(),
    "Impossible de se connecter à la base de donnée : " + E.getMessage());
    }
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Erreur lors de l'insert dans une BDD MySQL
    Par gagaz21 dans le forum C#
    Réponses: 4
    Dernier message: 16/07/2011, 00h10
  2. Réponses: 1
    Dernier message: 18/03/2010, 14h35
  3. Erreur lors de l'installation de JDEE sur Ubuntu avec Synaptic
    Par zafo dans le forum EDI et Outils pour Java
    Réponses: 3
    Dernier message: 07/02/2008, 13h19
  4. Réponses: 1
    Dernier message: 16/10/2007, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo