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 :

Insérer des tuples dans une BDD avec une requête de type INSERT INTO (données provenant d'un JTable)


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 33
    Points : 40
    Points
    40
    Par défaut Insérer des tuples dans une BDD avec une requête de type INSERT INTO (données provenant d'un JTable)
    Nom : Screenshot from 2018-07-11 10-24-20.png
Affichages : 1120
Taille : 69,2 Ko

    Salut tout le monde, svp quelqu'un peut-il m'aider ?
    je voudrai inserer les differentes lignes d'un JTable contenant plusieurs champs dans une base de donnees
    voila mon code mais il ne marche pas du tout
    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
     try{
                statement = conn.createStatement();
                String sql = ("INSERT INTO stock(categorie,designation,quantity,prix_u,total,client) VALUES(?,?,?,?,?,'"+(clientLb.getText())+"')");
     
                for (int i = 0; i < d.getRowCount(); i++){
                    for (int j = 0; j < d.getColumnCount(); j++){
                        }
                         int s = statement.executeUpdate(sql);
     
                        if(s>0){
     
                            JOptionPane.showMessageDialog(null,"Ajout Termine Success ! ","Success",JOptionPane.PLAIN_MESSAGE);       
                        }
                        else {
     
                            JOptionPane.showMessageDialog(null,"Echec lors de l'Ajout, Veillez reessayer ! ","Erreur",1);
                        }
                            bd.Deconnexion();
                }
        }     
            catch (SQLException ex){
                JOptionPane.showMessageDialog(null, "Echec lors de l'ajout !");
            }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Premièrement, ta syntaxe SQL est celle d'un PreparedStatement, il faut donc utiliser un PreparedStatement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                String sql = ("INSERT INTO stock(categorie,designation,quantity,prix_u,total,client) VALUES(?,?,?,?,?,'"+(clientLb.getText())+"')");
    statement = conn.preparedStatement( sql );
    Pour la colonne "client", ce serait aussi bien de la traiter comme les autres, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                String sql = "INSERT INTO stock(categorie,designation,quantity,prix_u,total,client) VALUES(?,?,?,?,?,?)";
    statement = conn.preparedStatement( sql );
    statement.setString(6, clientLb.getText());
    Ensuite, pour chaque ligne de la table, il faut affecter les valeurs au PreparedStatement ( avec les méthodes set* pour chaque colonne, pour le type adéquat), en les récupérant par un getValueAt() dans la JTable, ou le modèle).

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 33
    Points : 40
    Points
    40
    Par défaut
    Merci je vais essayer

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 33
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    Premièrement, ta syntaxe SQL est celle d'un PreparedStatement, il faut donc utiliser un PreparedStatement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                String sql = ("INSERT INTO stock(categorie,designation,quantity,prix_u,total,client) VALUES(?,?,?,?,?,'"+(clientLb.getText())+"')");
    statement = conn.preparedStatement( sql );
    Pour la colonne "client", ce serait aussi bien de la traiter comme les autres, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                String sql = "INSERT INTO stock(categorie,designation,quantity,prix_u,total,client) VALUES(?,?,?,?,?,?)";
    statement = conn.preparedStatement( sql );
    statement.setString(6, clientLb.getText());
    Ensuite, pour chaque ligne de la table, il faut affecter les valeurs au PreparedStatement ( avec les méthodes set* pour chaque colonne, pour le type adéquat), en les récupérant par un getValueAt() dans la JTable, ou le modèle).

    SVP est ce que je peux avoir un exemple de code complet que le mien?, j'ai un peu du mal a comprendre au niveau de la methode set* et getValueAt() pour affecter les valeurs au PreparedStatement.
    Voila ou j'en suis actuellement
    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
     private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      
     
            bd.ConnexionBD();
    	conn = bd.getConnect();
            try{
                //statement = conn.createStatement();
                PreparedStatement sql = conn.prepareStatement("INSERT INTO stock(categorie,designation,quantity,prix_u,total,client) VALUES(?,?,?,?,?,?)");
     
                for(int i = 0; i < d.getRowCount(); i++){
                    for(int j = 0; j < d.getColumnCount(); j++){
                }
                    sql.executeUpdate();
                        sql.setString(6, clientLb.getText());
                            JOptionPane.showMessageDialog(null,"Enregistrer avec succes ! ");
                            bd.Deconnexion();
                }
            }     
            catch (SQLException ex){
                JOptionPane.showMessageDialog(null, "Echec lors de l'ajout !");
            }
        }

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/02/2017, 12h03
  2. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  3. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  4. Réponses: 0
    Dernier message: 15/04/2010, 11h35
  5. Réponses: 1
    Dernier message: 18/11/2008, 21h42

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