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
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
A voir également:
- Probleme d insertion BD Mysql depuis java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
5 réponses
Utilisateur anonyme
20 mai 2008 à 15:01
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
Utilisateur anonyme
23 mai 2008 à 09:59
23 mai 2008 à 09:59
Salut,
Utilises la méthode executeUpdate() de la classe Statement, petit exemple :
Utilises la méthode executeUpdate() de la classe Statement, petit exemple :
Statement stmt = con.createStatement(); stmt.executeUpdate("insert into employee " + "values(1,'R',5500 )");
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
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
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
26 mai 2008 à 18:17
Salut,
Ajoute une connexion.commit() après ton executeUpdate(), ça va aider.
à+
Ajoute une connexion.commit() après ton executeUpdate(), ça va aider.
à+
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
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
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
(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
22 mai 2008 à 17:28
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