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ées


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut Insertion de données
    Bonjour,

    je voudrais récupérer les données contenues dans les jTextField et les insérer dans une base de donnée

    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
     
     public Facture(String ncommande ) {
            initComponents();
                    setSize(750,750);
            jLabel1.setText("Commande n°"+ncommande);
            StringBuffer tmp = new StringBuffer();
            StringBuffer tmp1 = new StringBuffer();
            StringBuffer tmp2 = new StringBuffer();
                StringBuffer tmp3 = new StringBuffer();
           try 
            { 
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:odbc:Comptoir","","");
            Statement statement = con.createStatement();
            String query = "SELECT * FROM \"Commandes\" Where \"Commandes.N° commande\"="+ncommande;
            ResultSet resultset = statement.executeQuery(query);
            Boolean valide = false ;
            while(resultset.next())
            {                        
                 String adresseclient = resultset.getString("Adresse livraison");  
                 String codepostal = resultset.getString("Code postal livraison");  
                 String villelivraison = resultset.getString("Ville livraison");  
     
                              tmp.append(adresseclient);
                               tmp1.append(codepostal);
                               tmp2.append(villelivraison);
     
            } jTextField6.setText(tmp.toString()); jTextField4.setText(tmp1.toString());jTextField3.setText(tmp2.toString());
     
            con.close();
        }      
        catch( ClassNotFoundException e) 
        {
            System.err.println("Erreur lors du chargement du pilote : " + e);
        }
        catch(SQLException sqle)
        {
            System.err.print("Erreur SQL : " + sqle);
        }
             catch(Exception e)
       {
            System.err.println("Erreur lors du chargement du pilote : " + e);
        }
     
          public void insertion(String num,String add){
                    String url = "jdbc:odbc:Comptoir";
                int i =0;
             Connection con = null;
             String sql=null;    
     
             try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                              con = DriverManager.getConnection(url,"","");
                 Statement stmt = con.createStatement();
                 sql = "INSERT INTO Facture (N° commande,Adresse livraison) VALUES ('"+ num + "','"+ add + "')";                         
                 int nbb = stmt.executeUpdate(sql);
                 if(nbb>0)
                     System.out.println("Requête effectuée");
                 else
                     System.out.println("Probléme requête");                       
            }    
            catch(Exception e) {  System.out.println("Exception4");  }
              finally {
             try {con.close();}
            catch(SQLException e) {e.printStackTrace();}
            }
             }
    Le problème c'est que ca me met toujours "Exception4"

    Merci

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Salut. Alors , dans la méthode insertion
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Je ne crois pas que tu ais besoin de le rappeler, le driver dois etre déjà charger, il me semble ( à vérifier ).
    Ensuite, toujours dans la méthode insertion, essaye de spécifier les exceptions ou même d'afficher leur message !
    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
    try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                              con = DriverManager.getConnection(url,"","");
                 Statement stmt = con.createStatement();
                 sql = "INSERT INTO Facture (N° commande,Adresse livraison) VALUES ('"+ num + "','"+ add + "')";                         
                 int nbb = stmt.executeUpdate(sql);
                 if(nbb>0)
                     System.out.println("Requête effectuée");
                 else
                     System.out.println("Probléme requête");                       
            }catch(SQLException e) {
                 System.out.println("SQLException !\nDetails : " + e.toString());
            }
            catch(Exception e) {  System.out.println("Exception4\nDetails : " + e.toString());  }
              finally {
             try {con.close();}
            catch(SQLException e) {e.printStackTrace();}
            }
    Voila, c'était juste une ptite explication. Bonne chance

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    j'ai affiché les exceptions et j'obtient cela :

    Erreur SQL : java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO.Erreur lors du chargement du pilote : java.lang.NullPointerException

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Ajoute le jar du driver à ton CLASSPATH.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    ce n'est pas ca le problème vu que la connexion à ma base de donnée marche au début du programme

  6. #6
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Il suffit de charger une seule fois le driver.

    [EDIT] utilise les preparedStatement, c'est beaucoup plus robuste pour tes requétes SQL.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par afrikha
    [EDIT] utilise les preparedStatement, c'est beaucoup plus robuste pour tes requétes SQL.
    C'est clair, parce que là, sans preparedStatement, c pas pratique

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/05/2004, 14h32
  2. problème d'insertion de données
    Par Falgan dans le forum ASP
    Réponses: 2
    Dernier message: 06/04/2004, 09h29
  3. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  4. insertion de données
    Par m-l dans le forum SQL
    Réponses: 9
    Dernier message: 25/07/2003, 13h59
  5. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33

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