Probleme d insertion BD Mysql depuis java

Fermé
Nspider - 20 mai 2008 à 14:22
mehdi_boussarhane Messages postés 50 Date d'inscription dimanche 23 novembre 2008 Statut Membre Dernière intervention 15 janvier 2012 - 16 juin 2011 à 12:08
Bonjour,
Dans la conception de mon application graphique en java; je reussi bien à me connecté à la base. Mais j'aimerai faire des insertions depuis l'interface graphique. Comment fait on une insertion dans une base de données depuis un programme Java?
Merci de votre réponse
A voir également:

5 réponses

Utilisateur anonyme
20 mai 2008 à 15:01
Il faut que tu utilises une connexion JDBC avec ta base de données. Regarde ce site pour une explication : http://www.kryskool.org/article.php?utiliser-mysql-dans-un-programme-java-avec-jdbc-1ere-partie
0
Merci Tassin pour ton aide.
Mais mon probleme subsite car j'ai déja pu me connecter à la BD et exécuté une requete select. Ce sont les requetes d'insertions qui me posent des problemes.
Peut tu m'aider pour cela.
Merci
0
Utilisateur anonyme
23 mai 2008 à 09:59
Salut,

Utilises la méthode executeUpdate() de la classe Statement, petit exemple :
Statement stmt = con.createStatement();
stmt.executeUpdate("insert into employee  " +  "values(1,'R',5500 )");
0
Salut Alex et merci pour ton aide.
En mon interface graphique est en MVC ( Modele Vue Controleur). Je doit donc faire passer les données à inserer de la vue au modele via le controleur. C'est le modele qui est connecté à la base et qui assure l'enregistrement.
Je te transmets le code que j'ai écrit.


1-Pour le modele
package bandeModel;



import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;



import javax.swing.JTextField;



import bandeVue.ajoutmodifutilVue;



public class ajoutmodifutilModel {



public ajoutmodifutilModel() {

}



public void insertion(JTextField field, JTextField field2, JTextField field3, JTextField field4, JTextField field5){



String pilote = "com.mysql.jdbc.Driver";



try{

Class.forName(pilote);



Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/basebande","root","");



Statement instruction = connexion.createStatement();



int rs = instruction.executeUpdate("insert into utilisateurs(nom,prenom,login,password,profil) values('field','field2','field3','field4','field5')");



}

catch (Exception e){



System.out.println("echec pilote : "+e);

}



}



//lancement de l'insertion

public static void main(String args[]){

ajoutmodifutilModel model=new ajoutmodifutilModel();

ajoutmodifutilVue vue=new ajoutmodifutilVue(model);

vue.setVisible(true);

}















}



2-
Pour la vue:
package bandeVue;



import java.awt.Color;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.GridLayout;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JToggleButton;

import javax.swing.SwingConstants;

import javax.swing.border.MatteBorder;



import bandeControleur.ajoutmodifutilControleur;

import bandeModel.ajoutmodifutilModel;



public class ajoutmodifutilVue extends JFrame {



private ajoutmodifutilControleur controleur;

private ajoutmodifutilModel model;



private JTextField proField;

private JTextField passField;

private JTextField loginField;

private JTextField prenomField;

private JTextField nomField;

/**

* Launch the application

* @param args



public static void main(String args[]) {

try {

ajoutmodifutilVue frame = new ajoutmodifutilVue();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}*/



/**

* Create the frame

*/

public ajoutmodifutilVue(ajoutmodifutilModel model) {

super();

this.model=model;

ajoutmodifutilControleur controleur=new ajoutmodifutilControleur(this,model);



getContentPane().setLayout(new GridLayout(6, 0));

setBackground(new Color(100, 149, 237));

setTitle("Ajout ou modification d'un utilisateur");

setBounds(100, 100, 509, 366);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



final JLabel nomLabel = new JLabel();

nomLabel.setFont(new Font("@Arial Unicode MS", Font.BOLD, 16));

nomLabel.setHorizontalAlignment(SwingConstants.CENTER);

nomLabel.setBackground(new Color(135, 206, 235));

nomLabel.setText("Nom");

getContentPane().add(nomLabel);



nomField = new JTextField();

getContentPane().add(nomField);



final JLabel prenomLabel = new JLabel();

prenomLabel.setHorizontalAlignment(SwingConstants.CENTER);

prenomLabel.setFont(new Font("@Arial Unicode MS", Font.BOLD, 16));

prenomLabel.setBackground(new Color(135, 206, 235));

prenomLabel.setText("Prenom");

getContentPane().add(prenomLabel);



prenomField = new JTextField();

getContentPane().add(prenomField);



final JLabel loginLabel = new JLabel();

loginLabel.setHorizontalAlignment(SwingConstants.CENTER);

loginLabel.setFont(new Font("@Arial Unicode MS", Font.BOLD, 16));

loginLabel.setBackground(new Color(135, 206, 235));

loginLabel.setText("Login");

getContentPane().add(loginLabel);



loginField = new JTextField();

getContentPane().add(loginField);



final JLabel passwordLabel = new JLabel();

passwordLabel.setHorizontalAlignment(SwingConstants.CENTER);

passwordLabel.setFont(new Font("@Arial Unicode MS", Font.BOLD, 16));

passwordLabel.setBackground(new Color(135, 206, 235));

passwordLabel.setText("Password");

getContentPane().add(passwordLabel);



passField = new JTextField();

getContentPane().add(passField);



final JLabel profilLabel = new JLabel();

profilLabel.setHorizontalAlignment(SwingConstants.CENTER);

profilLabel.setFont(new Font("@Arial Unicode MS", Font.BOLD, 16));

profilLabel.setBackground(new Color(135, 206, 235));

profilLabel.setText("Profil");

getContentPane().add(profilLabel);



proField = new JTextField();

getContentPane().add(proField);



final JToggleButton validerBut = new JToggleButton();

validerBut.setBorder(new MatteBorder(0, 0, 0, 0, Color.black));

validerBut.setMaximumSize(new Dimension(100, 50));

validerBut.setFont(new Font("@Arial Unicode MS", Font.BOLD, 28));

validerBut.setBackground(new Color(102, 205, 170));

validerBut.setActionCommand("valider");

validerBut.setText("Valider");

validerBut.addActionListener(controleur);

getContentPane().add(validerBut);



final JToggleButton annulerBut = new JToggleButton();

annulerBut.setFont(new Font("@Arial Unicode MS", Font.BOLD, 28));

annulerBut.setBackground(new Color(255, 69, 0));

annulerBut.setActionCommand("annuler");

annulerBut.setText("Annuler");

annulerBut.addActionListener(controleur);

getContentPane().add(annulerBut);

//

}



public JTextField getLoginField() {

return loginField;

}



public void setLoginField(JTextField loginField) {

this.loginField = loginField;

}



public JTextField getNomField() {

return nomField;

}



public void setNomField(JTextField nomField) {

this.nomField = nomField;

}



public JTextField getPassField() {

return passField;

}



public void setPassField(JTextField passField) {

this.passField = passField;

}



public JTextField getPrenomField() {

return prenomField;

}



public void setPrenomField(JTextField prenomField) {

this.prenomField = prenomField;

}



public JTextField getProField() {

return proField;

}



public void setProField(JTextField proField) {

this.proField = proField;

}





}


3- Pour le controleur:
package bandeControleur;



import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;



import javax.swing.JTextField;



import bandeModel.ajoutmodifutilModel;

import bandeVue.ajoutmodifutilVue;



public class ajoutmodifutilControleur implements ActionListener {



private ajoutmodifutilVue vue;

private ajoutmodifutilModel model;







//constructeur de la classe ajoutmodifutilControleur

public ajoutmodifutilControleur(ajoutmodifutilVue vue, ajoutmodifutilModel model){



this.model=model;

this.vue=vue;





}



public void actionPerformed(ActionEvent e){

if( e.getActionCommand()== "valider"){

model.insertion(vue.getNomField(),vue.getPrenomField(),vue.getLoginField(),vue.getPassField(),vue.getProField());

vue.setVisible(false);

}



}





}


Merci pour tes suggestions
0
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723 > Nspider
26 mai 2008 à 18:17
Salut,
Ajoute une connexion.commit() après ton executeUpdate(), ça va aider.
à+
0
justice4all
26 juin 2009 à 17:16
lol merci mon pote c'est un tres bon travail bien expliquer bien organisé merci infiniment
0
moi g de serieux problemes aavec ce code car si j'insere des données sur l'application je vois sur ma base field, Field 2, field3........... je ni comprend rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mehdi_boussarhane Messages postés 50 Date d'inscription dimanche 23 novembre 2008 Statut Membre Dernière intervention 15 janvier 2012 13
16 juin 2011 à 12:08
il faut recuperer les données depuis les zones de texte ou tout autre composant,
(a savoir que par exemple on pt recuperer le contenu d'un jtextfeild on utilisant la methode nom_jtextfeild.gettext() qui nous renvoi un String).

et pour l'excuter une requete update, insert, delete on utilise la methode executeupdate() au lieu d'utiliser la methode executequery().
sachant que executeUpdate() renvoi un int indiquant le nombre de ligne affecté par la requete de mise à jour
0