Probleme d insertion BD Mysql depuis java

Nspider -  
mehdi_boussarhane Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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
Nspider
 
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
 
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
Nspider
 
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   Statut Membre Dernière intervention   723 > Nspider
 
Salut,
Ajoute une connexion.commit() après ton executeUpdate(), ça va aider.
à+
0
justice4all
 
lol merci mon pote c'est un tres bon travail bien expliquer bien organisé merci infiniment
0
badara
 
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   Statut Membre Dernière intervention   13
 
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