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 :

Insérer valeur dans base de données JBDC


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 11
    Points
    11
    Par défaut Insérer valeur dans base de données JBDC
    Bonjour à tous,



    Je suis en train de créer un programme en java, j'ai crée une fenêtre avec des JtextField avec des informations à saisir (nom,prénom,password,adresse...) par l'utilisateur
    Je voudrais une fois la saisie terminé que ses informations se stockent/sauvegardent dans la base de donnée.
    J'utilise postgre sql et j'ai déja crée une base de donnée avec pgadmin3 et j'arrive à connecter mon programme dessus grâce au tuto mais à partir de là je ne sais plus quoi faire.
    Dans ma base de donnée j'ai crée une table Utilisateur avec toutes les colonnes dont j'ai besoin.
    Mon code me permet de saisir les informations de les stocker dans des variables mais je n'arrive pas à les insérer dans la base de donnée.
    Pouvez vous m'aider svp ?
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Salut,

    Citation Envoyé par Mrlaurent90 Voir le message
    Mon code me permet de saisir les informations de les stocker dans des variables mais je n'arrive pas à les insérer dans la base de donnée.
    Tu doit créer une requête SQL de type INSERT et exécuter cette requête pour faire l'enregistrement des valeurs de tes variables dans la table BD convenable.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 11
    Points
    11
    Par défaut
    bonjour,
    j'ai utilisé :
    Statement state = conn.createStatement();
    state.executeUpdate("INSERT INTO utilisateur VALUES(1,nom,prenom,password,datean,sexe,taille,lieu,adresse)");

    utilisateur c'est la table que jai crée avec pgadmin3.
    1 :id
    nom,prénom,password... sont les colonnes que j'ai crée dans cette table.

    et ca me met org.postgresql.util.PSQLException: ERROR: relation "utilisateur" does not exist
    pourtant je lai bien crée dans pgadmin.

  4. #4
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Est ce que tu fait l'insertion avec l'utilisateur pgadmin3?

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    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 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    state.executeUpdate("INSERT INTO utilisateur VALUES(1,"+nom+","+prenom+","+password+","+datean+","+sexe+","+taille+","+lieu"+,+"adresse")");
    Mais c'est du mauvais code.
    Regarde attentivement le preparedstatement (voir FAQ JDBC) c'est beaucoup mieux.
    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/

  6. #6
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    J'apprécis toujours la façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Statement state = conn.createStatement();
    String requete="INSERT INTO utilisateur VALUES(1,"+nom+","+prenom+","+password+","+datean+","+sexe+","+taille+","+lieu"+,+"adresse"";
    state.executeUpdate(requete);

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    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 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Ah oui tiens, il y a une erreur de guillemet à la fin.
    Re-rectification donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    state.executeUpdate("INSERT INTO utilisateur VALUES(1,"+nom+","+prenom+","+password+","+datean+","+sexe+","+taille+","+lieu"+"adresse")");
    Bon, de toutes façons, ce code ne marchera pas s'il y a des zones textes comme dans "prenom".
    C'est le type de bricolage que je suis obligé d'utiliser dans le visual basic pour Access
    Il faut doubler les guillemets avec des codes d'échappement.
    Et si d'aventure, l'utilisateur a saisi un guillemet alors ça ne marche plus.

    Vraie solution : prendre 1/2 heure pour bien comprendre comment fonctionne le PreparedStatement qui gère allègrement les chaînes de texte, les dates, les nombres etc.
    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/

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 11
    Points
    11
    Par défaut
    Bonjour et merci pour vos réponses,

    Lors du lancement du programme une fenêtre s'affiche avec des champs à remplir je me suis occupé de l'intégrité des données pour que l'utilisateur saisisse bien des lettres pour les prénoms/noms ... et des chiffres pour date/numéro ... Donc normalement pas de problème dans la concordance des types.
    et je voudrais que une fois ces données saisies celles ci se stockent dans la base de donnée pour pouvoir les réutilisé plus tard.

  9. #9
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    ca me met org.postgresql.util.PSQLException: ERROR: relation "utilisateur" does not exist
    Il ne trouve pas le table "utilisateur"...
    peut-être l'as-tu appelée "Utilisateur", ou "utilisateurs", ou.... ?

  10. #10
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    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 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par fraco Voir le message
    Il ne trouve pas le table "utilisateur"...
    peut-être l'as-tu appelée "Utilisateur", ou "utilisateurs", ou.... ?
    Je ne suis pas un spécialiste de postgresql, mais il faut peut-être ajouter le nom du schéma avant le nom de la table dans la requête.
    Quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO MonShema.utilisateur VALUES ...
    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/

  11. #11
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Sinon tu peux crée un synonyme public pour ta table utilisateur

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 11
    Points
    11
    Par défaut
    En fait je ne suis pas sur de l'endroit ou il faut placer la requete Statement.
    Parceque la requete s'éxecute apres la saisie des donnée or des que je lance le programme il y a déja des erreurs alors que je n'ai encore rien saisie.

    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
    public static void main(String[] args){
    		JOptionPane.showMessageDialog(null, "Bienvenue dans GenyGeny !!!", "GENYGENY", JOptionPane.INFORMATION_MESSAGE, null);
     
     
    		// Instanciation de la fenêtre qui permet de saisir les informations
    		Fenetre fen = new Fenetre();
     
     
     
     
     
    				try {
    					Class.forName("org.postgresql.Driver");
    					System.out.println("DRIVER OK ! ");
     
    					String url = "jdbc:postgresql://localhost:5432/Arbre";
    					String user = "postgres";
    					String passwd = "lolo";
    					//Connection à la base de donnée 
    					Connection conn = DriverManager.getConnection(url, user, passwd);
    					System.out.println("Connection effective !");			
     
    					Statement state = conn.createStatement();
    					String requete="INSERT INTO Utilisateur( VALUES(1,"+ZDialogInfo.nom+","+ZDialogInfo.prenom+","+ZDialogInfo.password+","+ZDialogInfo.dateNaissance+","+ZDialogInfo.sexe+","+ZDialogInfo.taille+","+ZDialogInfo.lieu+","+ZDialogInfo.adresse;
    					state.executeUpdate(requete);
     
     
     
    					 //result.close();
                        // state.close();
     
     
    				} catch (Exception e) {
    					e.printStackTrace();
    				}		
     
     
     
     
    			}
    et la console m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DRIVER OK ! 
    Connection effective !
    org.postgresql.util.PSQLException: ERROR: syntax error at end of input
      Position*: 74
    	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
    	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
    	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
    	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
    	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:302)
    	at testsdz.connect.main(connect.java:42)

  13. #13
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Il te manque une parenthèse à la fin essaye avec ça :

    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete="INSERT INTO Utilisateur VALUES(1,"+ZDialogInfo.nom+","+ZDialogInfo.prenom+","+ZDialogInfo.password+","+ZDialogInfo.dateNaissance+","+ZDialogInfo.sexe+","+ZDialogInfo.taille+","+ZDialogInfo.lieu+","+ZDialogInfo.adresse")";

  14. #14
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    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 710
    Points : 4 794
    Points
    4 794
    Par défaut
    @KnowPart il manque encore un signe "+" avant la dernière parenthèse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete="INSERT INTO Utilisateur VALUES(1,"+ZDialogInfo.nom+","+ZDialogInfo.prenom+","+ZDialogInfo.password+","+ZDialogInfo.dateNaissance+","+ZDialogInfo.sexe+","+ZDialogInfo.taille+","+ZDialogInfo.lieu+","+ZDialogInfo.adresse+")";
    ... et je n'ai pas vérifié le reste.

    Bon maintenant, en admettant qu'on ait :
    ZDialogInfo.nom = "Briand"
    ZDialogInfo.prenom = "Aristide"

    PG va voir arriver la requête comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Utilisateur VALUES(1,Briand,Aristide, ...
    ... et là on voit tout de suite que ça ne peut pas fonctionner car ce que PG peut accepter c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Utilisateur VALUES(1,"Briand","Aristide", ...
    Donc dans le code java il faut rédiger la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete="INSERT INTO Utilisateur VALUES(1,\""+ZDialogInfo.nom+\"",\""+ZDialogInfo.prenom+\"",\""+, ...
    On peut y arriver mais ça devient bourrin comme code

    Je me répète lourdement, mais c'est un cas à traiter avec PreparedStatement (voir FAQ)
    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/

  15. #15
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous et merci pour vos réponses,
    en ayant galéré toute la soirée je suis enfin arrivé a exécuter mes requêtes avec pgadmin ET avec le code java (problème de syntaxe et mauvais placement du code ...)
    Donc maintenant je voudrais insérer une requête avec les données que fournit l'utilisateur
    donc dans ma classe connect


    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
    public class connect {
    Fenetre fen;
    public static Connection conn;
     
     
    public static void main(String[] args){
    		JOptionPane.showMessageDialog(null, "Bienvenue dans GenyGeny !!!", "GENYGENY", JOptionPane.INFORMATION_MESSAGE, null);
     
     
    		// Instanciation de la fenêtre qui permet de saisir les informations
    		Fenetre fen = new Fenetre();
     
     
     
     
     
    				try {
    					Class.forName("org.postgresql.Driver");
    					System.out.println("DRIVER OK ! ");
     
    					String url = "jdbc:postgresql://localhost:5432/Arbre";
    					String user = "postgres";
    					String passwd = "lolo";
    					//Connection à la base de donnée 
    					Connection conn = DriverManager.getConnection(url, user, passwd);
    					System.out.println("Connection effective ! \n\n\n");			} catch (Exception e) {
    					e.printStackTrace();
    				}
    Maintenant ce que je voudrais faire, c'est exécuter une requête INSERT après que l'utilisateur appuis sur le bouton 'ok 'de la fenêtre de saisie. Donc j'ai utilisé un action listener sur le bouton qui fait appel a une méthode que je définie dans la classe connect

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	public static void executeINSERT()
    	{
     
    			try {
    				Statement state;	state = conn.createStatement();
     
    String requete= "INSERT INTO utilisateur (user_id,user_nom,user_prenom,user_password,user_datenaissance,user_sexe,user_taille,user_villenaissance,user_adresse)";
    		requete +=	" VALUES (8,'ZdialogInfo.nom','ZdialogInfo.prenom','ZdialogInfo.password',ZdialogInfo.dateNaissance,'ZdialogInfo.sexe',ZdialogInfo.taille,'ZdialogInfo.lieu','ZdialogInfo.adresse');";
    				state.executeUpdate(requete);
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}

    Donc dans la classe fenetre je met un connect.executeINSERT();
    et quand j'appuie sur le bouton ok dans la fenetre j'ai une belle erreur
    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
    Exception occurred during event dispatching:
    java.lang.NullPointerException
    	at testsdz.connect.execute(connect.java:118)
    	at testsdz.ZDialog$1.actionPerformed(ZDialog.java:261)
    	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.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.Dialog$1.run(Unknown Source)
    	at java.awt.Dialog$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.awt.Dialog.show(Unknown Source)
    	at java.awt.Component.show(Unknown Source)
    	at java.awt.Component.setVisible(Unknown Source)
    	at java.awt.Window.setVisible(Unknown Source)
    	at java.awt.Dialog.setVisible(Unknown Source)
    	at testsdz.ZDialog.showZDialog(ZDialog.java:64)
    	at testsdz.Fenetre$1.actionPerformed(Fenetre.java:77)
    	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.AbstractButton.doClick(Unknown Source)
    	at javax.swing.AbstractButton.doClick(Unknown Source)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(Unknown Source)
    	at javax.swing.SwingUtilities.notifyAction(Unknown Source)
    	at javax.swing.JComponent.processKeyBinding(Unknown Source)
    	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(Unknown Source)
    	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(Unknown Source)
    	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(Unknown Source)
    	at javax.swing.JMenuBar.processKeyBinding(Unknown Source)
    	at javax.swing.KeyboardManager.fireBinding(Unknown Source)
    	at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
    	at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
    	at javax.swing.SwingUtilities.processKeyBindings(Unknown Source)
    	at javax.swing.UIManager$2.postProcessKeyEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(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.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(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)
    Donc je ne sais pas ce qui ne va pas.

  16. #16
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    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 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Dans ton main, tu as écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection conn = DriverManager.getConnection(url, user, passwd);
    ce qui écrabouille ta déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static Connection conn;
    donc "conn" n'est pas disponible pour ta méthode executeINSERT

    Supprime le mot Connection dans ta méthode main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conn = DriverManager.getConnection(url, user, passwd);
    deuxième point, ta requête ne vas pas te donner le résultat attendu :
    telle qu'elle est, dans la base de données tu vas avoir
    nom : ZdialogInfo.nom
    prénom : ZdialogInfo.prenom
    etc ...

    et ce, quelque soit la valeur saisie par l'utilisateur

    solution : regarder attentivement les posts précédents
    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/

  17. #17
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 11
    Points
    11
    Par défaut
    je me suis enfin attarder à comprendre comment marchait les requêtes préparées et je suis enfin arrivé à entrer les données saisie par l'utilisateur dans la base merci pour vos réponses
    donc voici mon code je ne sais pas si il est optimisé mais en tout cas pour l'instant ca marche
    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
    	public static void execute()
    	{
     
    			try {
     
    				String requete = "INSERT INTO utilisateur (user_id,user_nom,user_prenom,user_password,user_datenaissance,user_sexe,user_villenaissance,user_adresse,user_taille)";
    				requete+="VALUES (?,?,?,?,?,?,?,?,?);";
     
     
     
    				PreparedStatement statement = conn.prepareStatement(requete);
     
     
    				statement.setObject(1,new Integer(16));
    				statement.setObject(2,ZDialogInfo.nom);
    				statement.setObject(3,ZDialogInfo.prenom);
    				statement.setObject(4,ZDialogInfo.password);
    				statement.setObject(5,ZDialogInfo.dateNaissance);
    				statement.setObject(6,ZDialogInfo.sexe);
    				statement.setObject(7,ZDialogInfo.lieu);
    				statement.setObject(8,ZDialogInfo.adresse);
    				statement.setObject(9,ZDialogInfo.taille);
     
    				statement.executeUpdate();
     
     
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    }

    Maintenant j'ai deux questions,
    je voudrais vider les valeurs que j'ai rentré dans ma base de donné pg car j'ai fais beaucoup de test et c'est un peu bordélique, maintenant que le programme marche je voudrais recommencer à 0.
    Ensuite je voudrais exporter ma base de donné postgres sur un autre ordinateur (avec pg admin installé).
    Comment faire svp ?

  18. #18
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 11
    Points
    11
    Par défaut
    je me suis enfin attarder à comprendre comment marchait les requêtes préparées et je suis enfin arrivé à entrer les données saisie par l'utilisateur dans la base merci pour vos réponses
    donc voici mon code je ne sais pas si il est optimisé mais en tout cas pour l'instant ca marche
    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
    	public static void execute()
    	{
     
    			try {
     
    				String requete = "INSERT INTO utilisateur (user_id,user_nom,user_prenom,user_password,user_datenaissance,user_sexe,user_villenaissance,user_adresse,user_taille)";
    				requete+="VALUES (?,?,?,?,?,?,?,?,?);";
     
     
     
    				PreparedStatement statement = conn.prepareStatement(requete);
     
     
    				statement.setObject(1,new Integer(16));
    				statement.setObject(2,ZDialogInfo.nom);
    				statement.setObject(3,ZDialogInfo.prenom);
    				statement.setObject(4,ZDialogInfo.password);
    				statement.setObject(5,ZDialogInfo.dateNaissance);
    				statement.setObject(6,ZDialogInfo.sexe);
    				statement.setObject(7,ZDialogInfo.lieu);
    				statement.setObject(8,ZDialogInfo.adresse);
    				statement.setObject(9,ZDialogInfo.taille);
     
    				statement.executeUpdate();
     
     
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    }

    Maintenant j'ai deux questions,
    je voudrais vider les valeurs que j'ai rentré dans ma base de donné pg car j'ai fais beaucoup de test et c'est un peu bordélique, maintenant que le programme marche je voudrais recommencer à 0.
    Ensuite je voudrais exporter ma base de donné postgres sur un autre ordinateur (avec pg admin installé).
    Comment faire svp ?

  19. #19
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    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 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Cette fois-ci ça a des chances de marcher

    Pour vider une table c'est du SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE * FROM utilisateur
    La syntaxe est à vérifier car elle peut changer un peu selon les SGBD

    je suppose qu'on peut le faire depuis PgAdmin

    Pour déplacer une base, voir le forum Pg.
    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/

  20. #20
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete+="VALUES (?,?,?,?,?,?,?,?,?);";
    Vous pouvez enlever le point virgule entre les cote
    N'oubliez pas surtout de fermer le statement à la fin

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2013, 09h03
  2. récupérer valeur dans base de donnée SQL
    Par Ullrik dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/05/2010, 08h23
  3. Réponses: 10
    Dernier message: 28/06/2007, 15h27
  4. insérer image dans base de données
    Par eriz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/04/2007, 12h03
  5. Insérer Enregistrement dans Base de données
    Par TurricanII dans le forum JBuilder
    Réponses: 3
    Dernier message: 30/05/2006, 12h59

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