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 :

Problème d'insertion dans une base de données


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Problème d'insertion dans une base de données
    Bonsoir à tous,

    Alors voilà je développe une petite application graphique en Java qui utilise une base de données. J'utilise le driver hsqldb. Donc j'ai réussi à me connecter à la base de données, à effectuer des requêtes Select qui fonctionnent, mais là j'ai beaucoup de mal à faire un Insert. En fait j'ai écrit la requête avec un preparedStatement, elle s'exécute sans erreurs mais au final rien n'a été inséré dans ma base de données! Je vous mets la portion du code correspondante, dites moi s'il vous faut le reste :
    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
    public void ajouterEleve(Connection con, String nom, String prenom, int age, String sexe)
        {
     
            try{
                int i=0;
                PreparedStatement statement = con.prepareStatement("INSERT INTO \"Joueur\" (\"nom\", \"prénom\", \"âge\", \"sexe\",\"ID_joueur\",\"adresse\",\"code postal\",\"téléphone\",\"email\",\"classement\") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); 
                    statement.setString(1, nom);
                    statement.setString(2, prenom);
                    statement.setInt(3, age);
                    statement.setString(4, sexe);
                    statement.setInt(5,552556565);
                    statement.setString(6, "france");
                    statement.setInt(7, 63000);
                    statement.setString(8, "0615465465");
                    statement.setString(9, "test@free.fr");
                    statement.setString(10, "30/0");
                    i = statement.executeUpdate();
     
                    con.commit();
                    con.close();
     
                System.out.println("nombre de colonnes concernées :" +i);
     
            }
            catch(SQLException e)
            {
                System.out.println("Exception SQL : ");
                while (e != null) 
                {
                    String message = e.getMessage();
                    String sqlState = e.getSQLState();
                    int errorCode = e.getErrorCode();
                    System.out.println("Message = "+message);
                    System.out.println("SQLState = "+sqlState);
                    System.out.println("ErrorCode = "+errorCode);
                    e = e.getNextException();        
                } 
            }
     
         }
    Voilà merci pour votre aide!

  2. #2
    Membre régulier
    Homme Profil pro
    IT in outer space
    Inscrit en
    Novembre 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : IT in outer space

    Informations forums :
    Inscription : Novembre 2006
    Messages : 88
    Points : 96
    Points
    96
    Par défaut
    Salut,

    pourquoi ne pas utiliser des guillemets simple voir pas de guillemets du tout ?
    J'utilise SQLite pour ma part mais j'ai réussi des INSERT comme ça...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    merci pour ta réponse déjà c'est sympa de m'aider

    Alors pour les guillemets j'utilise ça \" parce que si je ne mets rien il me met cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception SQL : 
    Message = Column not found: NOM in statement [INSERT INTO "Joueur" (nom, prénom, âge, sexe, ID_joueur,adresse,"code postal",téléphone,email,classement) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]
    SQLState = S0022
    ErrorCode = -28
    Donc apparemment il ne reconnait pas la colonne sans les guillemets. J'ai aussi essayé avec des simples et là il me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception SQL : 
    Message = Unexpected token: nom in statement [INSERT INTO "Joueur" ('nom', 'prénom', 'âge', 'sexe', 'ID_joueur','adresse',"code postal",'téléphone',email,classement) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]
    SQLState = 37000
    ErrorCode = -11
    Donc voilà l'histoire de mes \" !

    Sinon en fait j'ai remarqué que mon insert marchait certaines fois, mais genre une fois sur 15!

    D'où celà peut il venir?

    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    1- C'est pas bon d'utiliser des noms de champ ou de table avec des accents ou des espaces.
    2-
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO `Joueur` (`nom`, `prénom`, `âge`, `sexe`,`ID_joueur`,`adresse`,`code postal`,`téléphone`,`email`,`classement`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

    A+.

  5. #5
    Membre régulier
    Homme Profil pro
    IT in outer space
    Inscrit en
    Novembre 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : IT in outer space

    Informations forums :
    Inscription : Novembre 2006
    Messages : 88
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    1- C'est pas bon d'utiliser des noms de champ ou de table avec des accents ou des espaces.
    2-
    Code sql :
    Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO `Joueur` (`nom`, `prénom`, `âge`, `sexe`,`ID_joueur`,`adresse`,`code postal`,`téléphone`,`email`,`classement`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)


    A+.
    Effectivement, j'ai pas tilté dessus.

Discussions similaires

  1. [MySQL] Problème pour l'insertion dans une base de données avec variables $_POST
    Par hakkio dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/03/2012, 17h04
  2. Réponses: 5
    Dernier message: 10/06/2010, 16h45
  3. Problème d'insertion dans une base de donnèes
    Par atout dans le forum Administration
    Réponses: 14
    Dernier message: 27/12/2006, 07h07
  4. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  5. problème de recherche dans une base de données
    Par bouzid_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 06h47

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