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 :

Insertion de donnée (occurence) dans une table sql


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut Insertion de donnée (occurence) dans une table sql
    Bonjour,
    je souhaite ajouter une occurance dans une de mes tables SQL.
    Cependant si je l'ajoute les données (je veux dire leur valeurs) dans ma classe ca fonctionne mais je n'y arrive pas si veux l'ajouter à partir du de ma classe main.
    voila le code
    ---------------------------------------------------------------
    classe avec constructeur:
    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
     
    package com.bankonetbase;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class ClientDB{
     
     
    /* déclaration de la base donnée  et de sa connection */
    private static final String DRIVER_NAME="com.mysql.jdbc.Driver", DB_URL="jdbc:mysql:///base_jf", DB_LOGIN="root", DB_PASSWORD="";
     
    /* declaration de l'attribut */	
    Connection connection=null;
     
     
    /* on tente de se connecter au driver JDBC */
     
    public  ClientDB()
    {
    try {
    Class.forName(DRIVER_NAME);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
     
    /* on tente de se connecter à la base, et on fait la requette */
    public void ecrireclient(String id, String lenom, String leprenom, String lecc, String lece)
    {
    try {
    Connection conn= DriverManager.getConnection(DB_URL,DB_LOGIN,DB_PASSWORD);
     
    /** creation de la requette */
    Statement requete = conn.createStatement();
    requete.executeUpdate("insert into client ( Id_client, nom, prenom,no_cc,no_ce )" +
    "values(id, lenom, leprenom, lecc,lece);"); <== C'EST CA QUI EST FAUX
     
     
    /** liberation des ressources */ 
    requete.close();
    conn.close();
     
     
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    ----------------------------------------------
    et ma classe MAIN
    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
     
    package com.bankonetbase;
     
    public class TestClientDB {
     
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
     
    /* appel chargement de jbbc */
    ClientDB obj_bd = new ClientDB();
     
    /* on va ecrire un nouveau client */
     obj_bd.ecrireclient("a201",  "Dupond", "david", "david-cc","david-ce");
    ------------------------------------------------------------------
    Resultat de l'execution:
    java.sql.SQLException: null, message from server: "Unknown column 'id' in 'field list'"

    je voudrais en fait que le prg mette le contenu de id c'est à dire a201.
    Dans ma base sql le champ s'appelle Id_client.

    Si quelqu'un a une idée ?

    merci d'avance (et j'espère que ce que j'ai mis n'est pas trop confus)

    Editer par zekey: ajout des balises codes, merci d'y penser à l'avenir

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Je ne connais pas mysql mais ta renquête me parait "bizarre" !
    je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    "insert into client "+
    "values("+id+","+
    lenom+","+
    lecc+","+
    lece+");"

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut j'ai essayé mais ca me donne le même message
    Ca donne "Unknown column 'id' in 'field list'"

  5. #5
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Une lumière me vient à l'esprit : ta base ( enfin tes tables ), t'es sûr qu'elles ont bien été créées avec des instructions de type "CREATE TABLE..." ?
    Parce que si t'as pas déclaré les champs, c'est normal qu'il ne les connaisse pas lorsque tu veux insérer des valeurs dedans !

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Je n'ai jamais essaye d'inserer directement dans une table a partir de java, mais je le fais dans des JSP, ce qui est pas très éloigné au final...
    Quand je dois passer des parametres a une requete, voici comment je procede :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PreparedStatement requete=conn.prepareStatement("INSERT INTO table_machin(col1, col2, col3) VALUES (?, ?, ?)");
    requete.setString(1, valeur1);
    requete.setString(2, valeur2);
    requete.setString(3, valeur3);
    requete.executeUpdate();
    valeur1, valeur2 et valeur3 sont des paramètres que j'ai passé lors de l'appel de ma fonction.

  7. #7
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Tu peux également faire des "preparedStatment" avec java. N'ayant utilisé jdbc que pour de petits test ( de plus avec hsqldb et non mysql ), je vais te renvoyer vers la javadoc du package java.sql et m'arrêter là ( avant de dire des bêtises ) en espérant que quelqun de plus calé que moi dans ce domaine prenne la main...
    Bon courage.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut ca marche
    En fait la première réponse était bien presque la bonne, il y avait juste une erreur de syntaxe avec les quotes.
    En fait, il faut ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /** creation de la requette */
    Statement requete = conn.createStatement();
       requete.executeUpdate("insert into client ( Id_client, nom,    
       prenom,no_cc,no_ce )" + "values
       ('"+id+"', '"+lenom+"', '"+leprenom+"', '"+lecc+"','"+lece+"');");
    Merci à tous
    jeff

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion des données Excel dans une base SQL-Server
    Par cedy-kassy dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/03/2012, 11h11
  2. insertion d'un doublons dans une table SQL 2000
    Par Paradisma dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/10/2010, 21h38
  3. [SQL 2005] Insertion de deux données identiques dans une table
    Par skystef dans le forum Accès aux données
    Réponses: 3
    Dernier message: 04/01/2007, 22h50
  4. Réponses: 3
    Dernier message: 20/12/2006, 17h59
  5. Réponses: 3
    Dernier message: 07/06/2006, 12h05

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