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 type date dans la base MySQL


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 67
    Points : 75
    Points
    75
    Par défaut Problème insertion type date dans la base MySQL
    Bonjour,

    J'ai un souci dans mon code, je ne parviens pas à insérer les dates de naissance dans la BD MySQL.

    Voici la classe :
    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
    package mesClasses;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;
    import java.util.Date;
    import java.util.GregorianCalendar;
     
    public class er_etudiant {
        Calendar cal = new GregorianCalendar();
        private String mat;
        private String nom;
        private String prenom;
        private Date dnais;
        private String sexe;
        private String adresse;
        private String tel;
     
        public String getMat() {return mat;}
        public void setMat(String mat) {this.mat = mat;}
     
        public String getNom() {return nom;}
        public void setNom(String nom) {this.nom = nom;}
     
        public String getPrenom() {    return prenom;}
        public void setPrenom(String prenom) {this.prenom = prenom;}
     
        public Date getDnais() {return dnais;}
        public void setDnais(Date dnais) {this.dnais = dnais;}
     
        public String getSexe() {return sexe;}
        public void setSexe(String sexe) {this.sexe = sexe;}
     
        public String getAdresse() {return adresse;}
        public void setAdresse(String adresse) {this.adresse = adresse;}
     
        public String getTel() {return tel;}
        public void setTel(String tel) {this.tel = tel;}
     
        public void insertIntoDB() throws Throwable {
            Connection cnx = Connector.getConnection();
            // create the mysql insert preparedstatement
            PreparedStatement preparedStmt = cnx
                    .prepareStatement("insert into er_etudiant(e_id, e_mat, e_nom, e_prenom, dnais, e_sexe, e_adr, e_tel) values (DEFAULT, ?, ?, ?, ?, ?, ?)");
            preparedStmt.setString(1, this.mat);
            preparedStmt.setString(2, this.nom);
            preparedStmt.setString(3, this.prenom);
            preparedStmt.setString(4,dnais.toString());
            preparedStmt.setString(5, this.sexe);
            preparedStmt.setString(6, this.adresse);
            preparedStmt.setString(7, this.tel);
     
            // execute the preparedstatement
            preparedStmt.execute();
            cnx.commit();
            cnx.close();
        }
     
        public static List<er_etudiant> getListeEtudiant() throws Throwable {
            ArrayList<er_etudiant> liste = new ArrayList<er_etudiant>();
            Connection cnx = Connector.getConnection();
            // create the java statement
            Statement st = cnx.createStatement();
     
            // execute the query, and get a java resultset
            ResultSet rs = st.executeQuery("SELECT * FROM er_etudiant");
     
            // iterate through the java resultset
            while (rs.next()) {
                er_etudiant etu = new er_etudiant();
                etu.setMat(rs.getString("e_mat"));
                etu.setNom(rs.getString("e_nom"));
                etu.setPrenom(rs.getString("e_prenom"));
                etu.setDnais(rs.getDate("e_dnais"));
                etu.setSexe(rs.getString("e_sexe"));
                etu.setAdresse(rs.getString("e_adr"));
                etu.setTel(rs.getString("e_tel"));
                liste.add(etu);
            }
            st.close();
            cnx.close();
            return liste;
        }
    }
    Voici le fichier d'insertion où Eclipse me notifie une 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
    <%@ page import="mesClasses.*"%>
     
    <%
        // Parameters come as strings
     
        er_etudiant etu = new er_etudiant();
        etu.setMat(request.getParameter("mat"));
        etu.setNom(request.getParameter("nom"));
        etu.setPrenom(request.getParameter("prenom"));
        etu.setDnais(request.getParameter("dnais")); 
    **** erreur : the method setDnais(date) in the type er_etudiant is not applicable for the arguments (String) 
        etu.setSexe(request.getParameter("sexe"));
        etu.setAdresse(request.getParameter("adresse"));
        etu.setTel(request.getParameter("tel"));
     
        try {
            etu.insertIntoDB();
    %>
    Insertion étudiant OK!
    <%
        } catch (Throwable e) {
    %>
    <h2>Insertion ERROR!</h2>
    <%=e.toString()%>
    <%
        }
    %>
    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 037
    Points
    17 037
    Par défaut
    Bonjour,

    Qu'est-ce que tu ne comprends pas dans l'erreur indiquée ?
    **** erreur : the method setDnais(date) in the type er_etudiant is not applicable for the arguments (String)

  3. #3
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Tu passes un argument de type String à la méthode setDate() alors que dans sa signature tu as prévu la réception d'un argument de type Date.

  4. #4
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     preparedStmt.setString( 4 ,dnais.toString());
    Si le champ e_datnais est de type Date pourquoi lui passer une String? La classe PreparedStatement dispose d'une méthode bien faite pour passer des dates. Sauf que le paramètre n'est de type java.util.Date mais plutôt une date sql. Je te la recommande fortement

Discussions similaires

  1. [MySQL] Problème d'insertion de données dans une base MySql à partir d'un fichier csv
    Par kazabandi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/12/2010, 18h05
  2. problème d'insertion des dates dans une base
    Par guy_antoine_mav dans le forum C#
    Réponses: 13
    Dernier message: 02/12/2009, 17h34
  3. Réponses: 1
    Dernier message: 11/11/2007, 17h54
  4. Ajouter un champs de type " Date " dans ma base ac
    Par hysteresis dans le forum Langage SQL
    Réponses: 16
    Dernier message: 10/10/2005, 16h10
  5. Réponses: 11
    Dernier message: 01/06/2005, 15h18

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