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 :

Insertion des données dans une BDD


Sujet :

JDBC Java

  1. #1
    Membre habitué Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Points : 140
    Points
    140
    Par défaut Insertion des données dans une BDD
    voilà je suis débutante en J2EE, j'ai un formulaire d'enregistrement jsp qui appelle une servlet où j'effectue l'insertion dans la base de données, mais rien n'est inséré et ça ne génère aucune erreur alors je ne sais pas où est le problème, voilà un bout du code

    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
     
    public void insertCompte(){
            try {
                String query = "INSERT INTO compte (password,bac) VALUES (?,?)";
                stat = cnx.prepareStatement(query);
                stat.setString(1,c.getPassword());
                stat.setString(2,c.getBac());
     
     
                stat.executeUpdate();
            }
        }
     
     
    public void Save() {
            try {
                cnx.setAutoCommit(false);
                insertCompte();
    ...
     
                cnx.commit();
            } catch (Exception e2) {
                try { cnx.rollback();  e2.printStackTrace();
                } catch (SQLException e1) {  e1.printStackTrace();
                }
                e2.printStackTrace();
            } finally {
                try { cnx.setAutoCommit(true);
                } catch (SQLException e1) {  e1.printStackTrace();
                }
            }
        }
     
     
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
     
            try {
                processRequest(request, response);
     
                bac = request.getParameter("bac");  c.setBac(bac); //c est un objet de la classe compte déclarée au début
                pass = request.getParameter("pass"); c.setPassword(pass);
                .
                . 
                .
               Save(); //méthode en haut pour l'insertion
    } catch (Exception ex) {
                Logger.getLogger(SignUp.class.getName()).log(Level.SEVERE, null, ex);
            }

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    As tu vérifié que cela passait bien dans les différentes méthodes ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Points : 140
    Points
    140
    Par défaut
    Je ne vous ai pas bien compris, qu'elles méthodes et comment savoir puisqu'aucune erreur n'est généré

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par Hind4Dev Voir le message
    Je ne vous ai pas bien compris, qu'elles méthodes et comment savoir puisqu'aucune erreur n'est généré
    Ce que j'ai voulu dire, c'est lorsque tu valide ton formulaire, est ce que les méthode doPost, Save et insertCompte sont bien appelées ?

    Pour cela tu peux soit lancer ton serveur en debug et faire du pas à pas, soit mettre des traces !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Points : 140
    Points
    140
    Par défaut
    alors j'ai mis des out.println() partout mais rien n'est affiché, est ce que ça fonctionne pas le out.println() sur les servlet?

    mais j'ai effectué un déboggage ça m'a donné erreur dans ce code alors je ne sais le résoudre autrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ddn_jour = request.getParameter("ddn_jour"); //je reçois le jour d'un option select
                ddn_mois = request.getParameter("ddn_mois"); //je reçois le mois d'un option select
                ddn_an = request.getParameter("ddn_an"); //je reçois le jour d'un input
                String ddn = "ddn_an"+"/"+"ddn_mois"+"/"+"ddn_jour";//la date dans ma base et de e type aaaa/mm/jj
                e.setDate_nais(Date.valueOf("ddn")); //erreur ici
    mais dans ma classe etudiant j'ai date_nais de type date sur lequel j'effectue le setDate_nais

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par Hind4Dev Voir le message
    alors j'ai mis des out.println() partout mais rien n'est affiché, est ce que ça fonctionne pas le out.println() sur les servlet?

    mais j'ai effectué un déboggage ça m'a donné erreur dans ce code alors je ne sais le résoudre autrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ddn_jour = request.getParameter("ddn_jour"); //je reçois le jour d'un option select
                ddn_mois = request.getParameter("ddn_mois"); //je reçois le mois d'un option select
                ddn_an = request.getParameter("ddn_an"); //je reçois le jour d'un input
                String ddn = "ddn_an"+"/"+"ddn_mois"+"/"+"ddn_jour";//la date dans ma base et de e type aaaa/mm/jj
                e.setDate_nais(Date.valueOf("ddn")); //erreur ici
    mais dans ma classe etudiant j'ai date_nais de type date sur lequel j'effectue le setDate_nais
    Normal tu demande à la méthode valueOf de parser la chaine "ddn" au lieux du contenu de la variable ddn :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.setDate_nais(Date.valueOf(ddn));
    mais malgré cette correction cela ne fonctionnera pas, en effet si tu regarde la javadoc de la méthode valueOf tu vera que le format attendu est le suivant : yyyy-[m]m-[d]d
    donc cela ne fonctionnera pas avec les '/' et tu aura aussi une erreur.

    D'autre part, tu indique que le format dans la base est aaaa/mm/jj cependant si tu as une sqlDate tu n'as pas vraiment a te soucier du format de la base mais uniquement le format attendu par le valueOf.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre habitué Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Points : 140
    Points
    140
    Par défaut
    j'ai réglé tous ces problèmes de réception de données depuis la jsp mais après j'ai un appel vers une fonction en haut qui fait l'insertion dans la bdd et cet appel ne fonctionne pas, n'est-il pas possible d'effectuer un appel dans la méthode doPost() ???
    voilà ma fonction Save() que j'appel dans doPost()

    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
    public void Save() {
            try {
                cnx.setAutoCommit(false);
                insertCompte();  //appel d'insertion de compte
                insertEtudiant(); //appel d'insertion de l'étudiant
                insertFils();       //appel d'insertion de fils
     
                cnx.commit();
            } catch (Exception e2) {
                try { cnx.rollback();  e2.printStackTrace();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            } finally {
                try { cnx.setAutoCommit(true);
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
        }


  8. #8
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par Hind4Dev Voir le message
    j'ai réglé tous ces problèmes de réception de données depuis la jsp mais après j'ai un appel vers une fonction en haut qui fait l'insertion dans la bdd et cet appel ne fonctionne pas, n'est-il pas possible d'effectuer un appel dans la méthode doPost() ???
    Il n'y a aucune raison que cela ne soit pas possible !
    Tu dis l'appel ne fonctionne pas ??? tu veux dire quoi par la ? Y a t il une erreur ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre habitué Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Points : 140
    Points
    140
    Par défaut
    c'est bon j'ai trouvé l'erreur et je l'ai rectifié c'était dans la requête sql mais le debug ne me donnais pas les messages d'erreur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTable] Personnaliser l'insertion des données dans une colonne
    Par grospatapouf dans le forum Composants
    Réponses: 0
    Dernier message: 15/10/2008, 08h34
  2. Insertion des données dans une BD à partir de C#
    Par etoile_de_vie dans le forum C#
    Réponses: 9
    Dernier message: 15/04/2008, 09h46
  3. Insertion de données dans une BDD Oracle avec VB.NET
    Par DashRendar dans le forum Accès aux données
    Réponses: 7
    Dernier message: 23/01/2008, 08h47
  4. [SQL-Server] Insertion via checkbox des données dans une bdd
    Par agur29 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/07/2007, 10h17
  5. [VB6]problème d'insertion des donneés dans une base d'Access2003
    Par lanbok dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2006, 12h17

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