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 :

Problème insertion données JDBC


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 12
    Points
    12
    Par défaut Problème insertion données JDBC
    Bonjour à tous,

    J'ai un problème pour insérer des données ma base de donnée.
    Lorsque j'essaie de les insérer, le message du try...catch s'affiche.
    Je ne vois pas la solution, d'autant que j'ai essayer avec d'autres tables, et là ça à marché.

    (la base de donnée est en fichier joint)


    Nouvproj.java //fichier permettant l'insertion des données
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    package projet;
     
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    import com.mysql.jdbc.PreparedStatement;
     
    import java.sql.*;
     
     
     
    	public class Nouvproj extends JFrame implements ActionListener {
    		  // private JPanel panlabel = new JPanel();
    		  // private JPanel panbouton = new JPanel();
    		   private JPanel panbas = new JPanel();
    		   private JPanel pan = new JPanel();
    		   private JPanel panhaut = new JPanel();
    		   private JPanel panest = new JPanel();
    		   private JPanel panouest = new JPanel();
    		   private JFrame fenetre = new JFrame();
    		   //Tableau stockant les éléments à afficher dans la calculatrice
     
    		   //Un bouton par élément à afficher
    		   //JButton jbnp = new JButton("Créer un projet"); //bouton nouveau projet
    		   //JButton jbcp = new JButton("Projet en cours"); //bouton projet en cours
    		   //JButton jbct = new JButton("Tâche en cours"); //bouton tâche en cours
    		   JLabel jl1 = new JLabel("Nom"); 
    		   JLabel jl0 = new JLabel("Bienvenuev ..."); 
    		   JLabel jl24 = new JLabel("Bienvenuev ..."); 
    		   JLabel jl21 = new JLabel(""); 
    		   JLabel jl22 = new JLabel(""); 
     
    		   JTextField jtnom = new JTextField(); 
    		   JLabel jl2 = new JLabel("Date Début");
    		   JTextField jtdatedeb = new JTextField(); 
    		   JLabel jl3 = new JLabel("Date Fin"); 
    		   JTextField jtdatefin = new JTextField();  
    		   JLabel jl4 = new JLabel("Budget"); 
    		   JTextField jtbudget = new JTextField();  
    		   JLabel jl5 = new JLabel("Client"); 
    		   JTextField jtdetail = new JTextField();  
    		   //JLabel jl6 = new JLabel("Durée"); 
    		   //JTextField jtduree = new JTextField();  
    		   JButton jb1 = new JButton();
    		   JButton jbnp = new JButton("Créer un projet");
     
    		   //private JLabel ecran = new JLabel();
     
    		  // private Container c =getContentPane();
     
     
    		   public Nouvproj(){
    		      setSize(240, 260);
    		     // fenetre.add(panbas);
    		      fenetre.setTitle("Menu");
    		      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		      setLocationRelativeTo(null);
    		      setResizable(true);
    		      //jl1.setPreferredSize(new Dimension(1, 2));
    		      panbas.setLayout(new GridLayout(7,2));
    		     // panhaut.setLayout(new GridLayout(1,1));
    			  panbas.add(jl1);
    			  panbas.add(jtnom);
    			  panbas.add(jl2);
    			  panbas.add(jtdatedeb);
    			  panbas.add(jl3);
    			  panbas.add(jtdatefin);
    			  panbas.add(jl4);
    			  panbas.add(jtbudget);
    			  panbas.add(jl5);
    			  panbas.add(jtdetail);
    			  //panbas.add(jl6);
    			  //panbas.add(jt6);
    			  panhaut.add(jl0);
    			  pan.add(jl24);
    			  panest.add(jl21);
    			  panouest.add(jl22);
    			  panbas.add(jb1);
    			  jb1.addActionListener(this);
     
     
    			  jl0.setPreferredSize(new Dimension(100, 100));
    			  jl2.setPreferredSize(new Dimension(100, 100));
    			  jl21.setPreferredSize(new Dimension(500, 500));
    			  jl22.setPreferredSize(new Dimension(500, 500));
    			  //jt5.setPreferredSize(new Dimension(100, 100));
     
     
    			  //c.add(BorderLayout.NORTH, panhaut);
    			   //c.add(BorderLayout.CENTER, panbas);
    			   fenetre.getContentPane().add(panbas, BorderLayout.CENTER);
    			   fenetre.getContentPane().add(panest, BorderLayout.EAST);
    			   fenetre.getContentPane().add(panouest, BorderLayout.WEST);
    			   fenetre.getContentPane().add(panhaut, BorderLayout.NORTH);
    			   fenetre.getContentPane().add(pan, BorderLayout.SOUTH);
    			   fenetre.setVisible(true);
     
     
    		 }
     
    		@Override
    		public void actionPerformed(ActionEvent event) {
    			if(event.getSource() == jb1){
    				try
    				{
    					Connection c = Conn.Conng();
    					try
    					{
    						Statement st = c.createStatement();
    						String sqlInsert = "INSERT INTO `dm`.`projet` (`noprojet`, `nomprojet`, `datedebut`, `datefin`, `budgetprevisonnel`,`detail`,`nosecurite`,`nosiret`,`parent`) VALUES (NULL,'"+jtnom.getText()+"','"+jtdatedeb.getText()+"','"+jtdatefin.getText()+"','"+jtbudget.getText()+"',NULL, NULL, NULL)";
     
    						System.out.println(sqlInsert);
    						int val = st.executeUpdate(sqlInsert);
    						st.close();
    						c.close();
    					}
    					catch(SQLException s){
    						System.out.println("SQL statement is not executed !");
    					}
    			}catch(Exception e){
    				e.printStackTrace();
    				System.out.println("Error on Bulding Data");
    			}
    }
    		}
    	}
    Conn.java //fonction de connection à la base de données
    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
     
    public class Conn{
     
    	private static Connection cx;
    	public static Connection Conng() throws SQLException{
     
    		//Connection cx = null;
    		try{
    			// Driver import (renseigne DriverManager par un bloc static)
    			Class.forName("com.mysql.jdbc.Driver");
     
    			// Connection opening	
    			 cx = DriverManager.getConnection("jdbc:mysql://localhost:8889/dm","root","root");		
    			 return cx;
     
     
    			// Connection closing
    			//cx.close();
     
    		}catch(SQLException e){
    			//System.out.println(e.getMessage());
    		}catch(ClassNotFoundException e){
    			System.out.println(e.getMessage());
     
     
    		}
    		return cx;	
    	}
     
    }
    Appli.java //fichier qui démarre "l'application"

    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
    package projet;
     
    import java.awt.EventQueue;
     
    public class Appli {
    	public static void main(String argv[]){
    		//Runnable r = new Runnable(){
    			//public void run(){
    				//new Nouvproj();
    				new Nouvproj();
    			//}
    		//};
    		//EventQueue.invokeLater(r);
    	}
    }
    Fichiers attachés Fichiers attachés
    • Type de fichier : sql dm.sql (10,3 Ko, 117 affichages)

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par kenda10 Voir le message
    Bonjour à tous,

    J'ai un problème pour insérer des données ma base de donnée.
    Lorsque j'essaie de les insérer, le message du try...catch s'affiche.
    Je ne vois pas la solution, d'autant que j'ai essayer avec d'autres tables, et là ça à marché.

    (la base de donnée est en fichier joint)
    Ton code a marché ou non ? Si tu as une erreur poste le message d'erreur.
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Il a marché pour ceraines tables mais pas pour toutes notamment la table projet.

    Le message est le suivant :

    INSERT INTO `dm`.`projet` (`noprojet`, `nomprojet`, `datedebut`, `datefin`, `budgetprevisonnel`,`nosecurite`, `nosiret`, `parent`) VALUES (NULL,'ll','2012-09-22','2012-09-30',NULL, NULL, NULL, NULL);
    SQL statement is not executed !

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 796
    Points
    4 796
    Par défaut
    Dans la structure de la table projet, il y a :
    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
    CREATE TABLE IF NOT EXISTS `projet` (
      `noprojet` int(11) NOT NULL AUTO_INCREMENT,
      `nomprojet` varchar(50) DEFAULT NULL,
      `datedebut` date DEFAULT NULL,
      `datefin` date DEFAULT NULL,
      `budgetprevisonnel` varchar(50) DEFAULT NULL,
      `nosecurite` bigint(15) NOT NULL,
      `nosiret` int(11) NOT NULL,
      `parent` int(11) DEFAULT NULL,
      PRIMARY KEY (`noprojet`),
      KEY `nosecurite` (`nosecurite`),
      KEY `nosiret` (`nosiret`),
      KEY `parent` (`parent`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    donc tu es obligé d'indiquer un nosiret (pas null donc)
    (ce que tu ne fais pas avec la requête exemple que tu as donné)

    Par ailleurs, une fois ce problème résolu, je te conseille vivement de passer à un PreparedStatement
    plutôt que d'utiliser une simple Statement pour ta requête INSERT.
    Un nom de projet peut très bien comporter une apostrophe et avec '"+jtnom.getText()+"' c'est la plantade assurée.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    OK, Merci. je vais regarder ça.

Discussions similaires

  1. [MySQL] Problème insertion données dans la table
    Par michgoarin dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/12/2014, 00h08
  2. Problème insertion données arabe dans Oracle
    Par harakat21 dans le forum Oracle
    Réponses: 2
    Dernier message: 24/08/2011, 11h56
  3. [MySQL] problème insertion donnée dans une table
    Par thebestxav dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/04/2011, 20h01
  4. Probléme insertion données
    Par bibo77 dans le forum JDBC
    Réponses: 8
    Dernier message: 02/05/2009, 18h07
  5. [SQL] Problème insertion de données
    Par griese dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/06/2006, 12h09

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