Insertion données dans une base de données MYSQL

Messages postés
3
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
22 décembre 2008
- - Dernière réponse :  Bruno - 25 avril 2019 à 14:29
Bonjour a tous,
Je suis débutant en java,je veux realiser une interface permettant d'ajouter des donneés dans une base de bonnées mysql,
J'ai saisis un code mais il affiche des messages d'erreur et g pas pu les resourdes.
Voici le code:
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Client extends JFrame implements ActionListener{
    private JButton bouton;
    public Client()
    {super();
        build();
       
       
       
    }
private void build()

{setTitle("interface");
setSize(300,300);
setResizable(true);
setContentPane(buildContentPane());

}
private JPanel buildContentPane()
{
    JPanel pane=new JPanel();
pane.setLayout(new FlowLayout());
JLabel label =new JLabel("nom");
JLabel labele= new JLabel("prenom");
JTextField txt=new JTextField("");
JTextField txte=new JTextField("");
txt.setColumns(10);
txte.setColumns(10);
JButton bouton=new JButton("valider");
pane.add(bouton);
pane.add(txt);
pane.add(txte);
pane.add(label);
pane.add(labele);
bouton.addActionListener(this);

return pane;
}
public void actionPerformed(ActionEvent e)
{Object source=e.getSource();
    Connection conn = null;
Statement stat = null;
ResultSet result = null;

    try
    {    Class.forName("com.mysql.jdbc.Driver").newInstance();
    System.out.println("Chargement du pilote Mysql réussi");
    conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/client", "root", "");
    stat = conn.createStatement();
    if(source==bouton)
    {
       
    String QueryString="insert into CLIENTDUNORD('txt.getString()','txte.getString()')";}
   
    result.close();
    stat.close();
    conn.close();
    } catch (SQLException se) {
        System.out.println("SQLException: " + se.getMessage());
        System.out.println("SQLState: " + se.getSQLState());
        System.out.println("VendorError: " + se.getErrorCode());
    } catch (InstantiationException ie) {
        System.err.print("Erreur de chargement du pilote : ");
        System.err.println(ie.getMessage());
    } catch (Exception ie) {
        //A gérer
        ie.printStackTrace();
    }
}
public static void main(String[]args)
{
    Client zied=new Client();
zied.setVisible(true);}
}

les messages d'erreur suivant apparaissent:

Chargement du pilote Mysql réussi
java.lang.NullPointerException
    at Client.actionPerformed(Client.java:67)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

j'ai besoin d'aide s'il vous plait et je serai reconnaissant.
Afficher la suite 

6 réponses

Messages postés
14
Date d'inscription
samedi 25 novembre 2006
Statut
Membre
Dernière intervention
20 septembre 2009
0
Merci
java ne reconnais pas de majuscule alors ton probleme c : CLIENTDUNORD

tu doit créer une table avec caracteres miniscule , j'avais le même probleme
j'ai créer une autre table ou le nom en miuniscule et ca marche

j'espere que tu réussira
Commenter la réponse de moutambo
Messages postés
3
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
22 décembre 2008
0
Merci
merci moutombo pour ton aide.J'ai changer le nom de la table en minuscule mais les mêmes messages d'erreur s'affichent.
En fait les données vont s'ajouter a la base par click sur un bouton n'est ce pas?
Si tu essaye d'exécuter mon code sur éclipse tu va voir les erreurs.
Je suis débutant en java et je suis bloqué.
c'est le même obstacle que j'ai rencontré. je suis aussi débutant.
Commenter la réponse de faloujien
Messages postés
3
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
22 décembre 2008
0
Merci
J'ai pu rectifier un peux le code en ajoutant la ligne suivante:

String QueryString="insert into personne('txt.getString()','txte.getString()')";
   
    stat.executeUpdate(QueryString);

le nobre d'erreur est diminué mais il toujours des erreurs:

les voila:

Chargement du pilote Mysql réussi
SQLException: Erreur de syntaxe près de ''txt.getString()','txte.getString()')' à la ligne 1
SQLState: 42000
VendorError: 1064

que dois-je faire maintenant
Commenter la réponse de faloujien
Messages postés
125
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
22 septembre 2019
0
Merci
Salut bon jai pas le temps de fouiller ton code mais je te send un qui marche dejà:

//package test;

import java.awt.*;

import javax.swing.*;
import java.awt.event.*;
import java.sql.*;

public class client extends JFrame implements ActionListener {
JTextField txtnom,txtpre,txtadr,txttel,txtfax,txtlocal,txtsite;
JButton btnAjout,btnEffacer,btnFermer;
public static void main(String[]args)
{
client frame=new client();

}
public client()
{
Container c=this.getContentPane();
c.setLayout(new GridLayout(3,4));
JLabel titre=new JLabel("",SwingConstants.CENTER);
JPanel panelcentre=new JPanel(new GridLayout(8,2));

JPanel panelbas=new JPanel(new FlowLayout());
titre.setForeground(Color.red);
titre.setFont(new Font("TimesRoman",Font.ITALIC,18));
titre.setText(" ----- FICHE CLIENT -----");
c.add(titre);
//zone de saisie pour le nom l'adresse et le telephone

txtnom=new JTextField();
txtpre=new JTextField();
txtadr=new JTextField();
txttel=new JTextField();
txtfax=new JTextField();
txtlocal=new JTextField();
txtsite=new JTextField();
//Object[] pai= {"Chèque bancaire", "Espèce","Carte bleu", "Chèques"};
//JComboBox txtmoy = new JComboBox(pai);
//ajout des etiquettes et des zones de saisie au panel
panelcentre.add(new JLabel("Nom  :",SwingConstants.RIGHT));
panelcentre.add(txtnom);
panelcentre.add(new JLabel("Prénom  :",SwingConstants.RIGHT));
panelcentre.add(txtpre);
panelcentre.add(new JLabel("Adresse :",SwingConstants.RIGHT));
panelcentre.add(txtadr);
panelcentre.add(new JLabel("Téléphone :",SwingConstants.RIGHT));
panelcentre.add(txttel);
panelcentre.add(new JLabel("Fax :",SwingConstants.RIGHT));
panelcentre.add(txtfax);
panelcentre.add(new JLabel("Localisation :",SwingConstants.RIGHT));
panelcentre.add(txtlocal);
panelcentre.add(new JLabel("Site Internet :",SwingConstants.RIGHT));
panelcentre.add(txtsite);
//panelcentre.add(new JLabel("MOYEN :",SwingConstants.RIGHT));
//panelcentre.add(txtmoy);
c.add(panelcentre);
//creer et ajoutter des boutons au panel de bas
btnAjout=new JButton("Ajouter");
btnEffacer=new JButton("Effacer");
btnFermer=new JButton("Fermer");
panelbas.add(btnAjout);
panelbas.add(btnEffacer);
panelbas.add(btnFermer);
c.add(panelbas);
//enregistrer le frame comme auditeur de bouton
btnAjout.addActionListener(this);
btnEffacer.addActionListener(this);
btnFermer.addActionListener(this);
this.setSize(400,450);
this.setTitle("AJOUT DE CLIENT");
this.setVisible(true);
//creer une classe anonyme pour gerer la fermeture de la fenetre
this.addWindowListener(new WindowAdapter()
{
public void windoClosing(WindowEvent ev)
{
fermerFormulaire();
}
}
);
}//fin du constructeur
public void actionPerformed(ActionEvent e)
{
//déterminer si on cliqué sur un bouton
if(e.getSource()==btnAjout)
{
ajouterClient();

}
if(e.getSource()==btnEffacer)
{effacerFormulaire();}
if(e.getSource()==btnFermer)
{fermerFormulaire();}
}
//ajout
private void ajouterClient()
{
String url = "com.mysql.jdbc.Driver";
Connection con = null;
try {
String nom,prenom,adress,phone,fax,localisation,site;

nom=txtnom.getText();
prenom=txtpre.getText();
adress=txtadr.getText();
phone=txttel.getText();
fax=txtfax.getText();
localisation=txtlocal.getText();
site=txtsite.getText();

//moyPaiement=txtmoy.getSelectedText();

System.out.println(nom+" "+prenom+" "+adress+""+phone+""+fax+" "+localisation+""+site);
Class.forName(url);

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/boutique","root","");

//insertion
Statement s = con.createStatement();
String str = "INSERT INTO client (nom,prenom,adress,phone,fax,localisation,site) VALUES ('"+txtnom.getText()+"','"+txtpre.getText()+"','"+txtadr.getText()+"','"+txttel.getText()+"','"+txtfax.getText()+"','"+txtlocal.getText()+"','"+txtsite.getText()+"')" ;
s.executeUpdate(str);
//System.out.println(str+" ligne insérée");
JOptionPane.showMessageDialog(this,"ajouté");
con.close() ;
}catch(Exception e) {System.out.println("Exception");}
finally {
try {con.close();}
catch(SQLException e) {e.printStackTrace();}
}
effacerFormulaire();
}
//effacer
private void effacerFormulaire()
{

txtnom.setText("");
txtpre.setText("");
txtadr.setText("");
txttel.setText("");
txtfax.setText("");
txtlocal.setText("");
txtsite.setText("");

}

//fermer
public void fermerFormulaire()
{
this.dispose();
}
}
Commenter la réponse de massbbc
Messages postés
79
Date d'inscription
vendredi 19 août 2011
Statut
Membre
Dernière intervention
11 octobre 2011
0
Merci
bonjour moi quand j'ajoute un getText() il est souligné que faire voici mon code:

public boolean getConnection(String jnom,String jpwd)throws Exception{
Connection conn=null; ResultSet rs=null; Statement st=null;
String url="jdbc:mysql:/localhost/bd_produit?";
//String nom_us="diememoise";
// String password_us="MEBF2011$";
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url);
Class.forName("org.gjt.mm.mysql.Driver");
if(conn==null) return (false);

String requete="select * from user where(nom_us='"+jnom.getText()+"' and password_us='"+jpwd.getText()+"')";
st=conn.createStatement();
rs=st.executeQuery(requete);
if(rs.next()) return (true);
else return (false);
}
message d'erreur:
Error(66,64): cannot find method getText()
Warning(120,49): getText() in javax.swing.JPasswordField has been deprecated


bigboss
Commenter la réponse de dmo83
0
Merci
C'est normal tu doit mettre des this.nomDeVariable avant le getText();
Ex:
title=this.title.getText();

Et ne fait pas exactement la même chose que massbbc y'a des chose à modifier mais inspire toi de son code si tu veux.
Commenter la réponse de bilel999