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 :

[DEBUTANTE] Formater et inserer une date dans une BDD my SQL


Sujet :

JDBC Java

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [DEBUTANTE] Formater et inserer une date dans une BDD my SQL
    Bonjour,
    Merci de bien vouloir m'aider à résoudre ce pb qui bloque l'avancement de mon projet.
    voilà, je travaille avec un BDD my SQL dans laquelle je dois inserer une date de majoration des enseignants. Le problème est que j'ai des erreurs: il ne prend pas le paramètre "Date dateActuelle" et j'arrive pas à tester mon code avec le void main que j'ai fait car il ne prend pas le format de date que je lui passe dans la fonction AjoutS. voilà ce que j'ai fait:

    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 void AjoutS(String Enseignant,int EtatP,String Module,int he,int hp, Date dateActuelle)
        {
    dateActuelle= new Date(dateActuelle.getTime());
    //création d'un objet date et mise à jour de la date courante
     
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    //création d'un format de date pour Mysql
     
    dateActuelle.getTime();
    //mise a jour de la date courante
     
    String requete="INSERT INTO services(NomEnseignant,Module,EtatPaiement,NbHeuresPrevues,NbHeuresEffectuees, DateMaj) VALUES('"+Enseignant+"','"+Module+"','"+EtatP+"','"+he+"','"+hp+"', '"+dateFormat.format(dateActuelle)+"')";
     
            try{
            stat.executeUpdate(requete);
            }
            catch(SQLException e)
            {
                System.out.println ("Probleme mise a jour table");
            }
        }
     
     
    public static void main(String[] args) {
     
            Mysql m=new Mysql();
     
    m.AjoutS("maria",30,"C45",12,9,"25/12/2006");
     
    }
    aidez moi svp, je suis vraiment bloquée avec ce pb.

  2. #2
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Utilises aussi un PreparedStatement ça va te simplifier la vie ...

  3. #3
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    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 void AjoutS( String Enseignant, int EtatP, String Module, int he, int hp, Date dateActuelle ){
    		dateActuelle = new Date(dateActuelle.getTime());
    		// création d'un objet date et mise à jour de la date courante
     
    		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    		// création d'un format de date pour Mysql
     
    		dateActuelle.getTime();
    		// mise a jour de la date courante
     
    		String requete = "INSERT INTO services(NomEnseignant,Module,EtatPaiement,NbHeuresPrevues,NbHeuresEffectuees, DateMaj) VALUES('" + Enseignant + "','" + Module + "','" + EtatP + "','" + he
    				+ "','" + hp + "', '" + dateFormat.format(dateActuelle) + "')";
     
    		try{
    			stat.executeUpdate(requete);
    		}
    		catch( SQLException e ){
    			System.out.println("Probleme mise a jour table");
    		}
    	}
     
     
    	public static void main( String[] args ){
     
    		Mysql m = new Mysql();
    		m.AjoutS("maria", 30, "C45", 12, 9, "25/12/2006");
    	}

    deja tu peux simplifier :

    dateActuelle = new Date(dateActuelle.getTime());
    // tu remplace une date par la meme date...

    dateActuelle.getTime();
    // ca te renvoit une valeur numerique que tu stock null part donc inutile

    ces 2 choses n'ont pas de sens... tu peux les virer.

    Ensuite il nous faut l'erreur pour mieux t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try{
    			stat.executeUpdate(requete);
    		}
    		catch( SQLException e ){
    		    e.printStackTrace();
    		}
    affiche nous l'erreur que renvoit la console.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Mieux vaut utiliser un PreparedStatement avec la méthode setDate, celà te permet d'être indépendant du format fixé par la base de données
    Dans ton cas:

    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
    
    public void AjoutS(String Enseignant,int EtatP,String Module,int he,int hp, Date dateActuelle)
        {
    dateActuelle= new Date(dateActuelle.getTime());
    //création d'un objet date et mise à jour de la date courante
      
           
    dateActuelle.getTime();
    //mise a jour de la date courante
    
    String requete="INSERT INTO services(NomEnseignant,Module,EtatPaiement,NbHeuresPrevues,NbHeuresEffectuees, DateMaj) VALUES(?,?,?,?,?,?)";
           PreparedStatement st = null;
           Connection connection = null;
            try{
           
            st = connection.prepareStatement(requete);
            st.setString(1,Enseignant);
            st.setString(2,Module);
            st.setInt(3,EtatP);
            st.setInt(he);
            st.setInt(hp);
            st.setDate(new java.sql.Date(dateActuelle.getTime());
            st.execute();
            }
            catch(SQLException e)
            {
                System.out.println ("Probleme mise a jour table");
                
            } finally {
               if(st != null) {
                 st.close();
               }
        }
    
    
    public static void main(String[] args) {
           
            Mysql m=new Mysql();
    
    m.AjoutS("maria",30,"C45",12,9,"25/12/2006");
    }
    

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [DEBUTANTE] Formater et inserer une date dans une
    Merci de donner plus de détails dans vos réponses car je suis archi nulle en java et si c'est possible de faire des modifications dans le code.

    déjà, j'ai ajouté une ligne à mon code, mon code devient:

    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
    	public void AjoutS(String Enseignant,int EtatP,String Module,int he,int hp,Date dateActuelle)
    	{
     
    	    dateActuelle= new Date();//création d'un objet date 
    	    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");//création d'un format de date pour Mysql
     
    	    dateActuelle.getTime(); //mise a jour de la date courante
     
    	    dateFormat.format(dateActuelle); //une chaine date formatée.
     
    String requete="INSERT INTO services(NomEnseignant,Module,EtatPaiement,NbHeuresPrevues,NbHeuresEffectuees,DateMaj) VALUES('"+Enseignant+"','"+Module+"','"+EtatP+"','"+he+"','"+hp+"','"+dateFormat.format(dateActuelle)+"')";
     
    		try{
    		stat.executeUpdate(requete);
    		}
    		catch(SQLException e)
    		{
    			e.printStackTrace();
    			//System.out.println("Probleme mise a jour table");
    		}
    	}
     
    public static void main(String[] args) {
     
    		Mysql m=new Mysql();
                    m.AjoutS("maria",30,"C45",12,9,"25/12/2006");
    }
    et le problème quand j'enlève
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dateActuelle= new Date(dateActuelle.getTime());
    et je le remplace par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     dateActuelle= new Date();
     dateActuelle.getTime();
     dateFormat.format(dateActuelle);
    j'ai l'erreur suivante: the constructor Date is undefined

    et l'erreur que j'ai en console cad de tt le code est:

    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method AjoutS(String, int, String, int, int, Date) in the type Mysql is not applicable for the arguments (String, int, String, int, int, String)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [DEBUTANTE] Formater et inserer une date dans une
    Bonjour Sinok et merci,

    j'ai essayé d'appliquer le code que tu as posté mais j'ai des erreurs pour 3 lignes du code, les suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    st.setInt(he);   (1)
    st.setInt(hp);   (2)
    st.setDate(new java.sql.Date(dateActuelle.getTime()));   (3)
    les erreurs sont:

    pour (1) et (2): the method setInt(int, int) in the type PreparedStatement is not applicable for the argument (int)
    et pour (3): the method setDate(int, Date) in the type PreparedStatement is not applicable for the argument (Date)

    et j'ai toujours une erreur dans le programme de test que j'ai fait, l'erreur est:

    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method AjoutS(String, int, String, int, int, Date) in the type Mysql is not applicable for the arguments (String, int, String, int, int, String)
    merci en tt cas

  7. #7
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par mariafan
    Bonjour Sinok et merci,

    j'ai essayé d'appliquer le code que tu as posté mais j'ai des erreurs pour 3 lignes du code, les suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    st.setInt(he);   (1)
    st.setInt(hp);   (2)
    st.setDate(new java.sql.Date(dateActuelle.getTime()));   (3)
    les erreurs sont:

    pour (1) et (2): the method setInt(int, int) in the type PreparedStatement is not applicable for the argument (int)
    et pour (3): the method setDate(int, Date) in the type PreparedStatement is not applicable for the argument (Date)

    et j'ai toujours une erreur dans le programme de test que j'ai fait, l'erreur est:



    merci en tt cas
    Pour le PreparedStatement les méthodes setXXX fonctionnent comme ça :

    setXXX(i, valeur);

    Avec i le numéro de paramètre à valoriser dans la requête paramétrée.

    A+

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [DEBUTANTE] Formater et inserer une date dans une
    Merci thibaut,

    c'est bon je n'ai plus d'erreur pour les set..., par contre j'ai toujours l'erreur dans le programme de test.

    le programme de test est:

    public static void main(String[] args) {

    Mysql m=new Mysql();

    m.AjoutS("maria",30,"C45",12,9,"25/12/2

    006"
    );

    }[/COLOR][/B]

    l'erreur est la suivante:

    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method AjoutS(String, int, String, int, int, Date) in the type Mysql is not applicable for the arguments (String, int, String, int, int, String)


    merci encore.

  9. #9
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Essaie ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     m.AjoutS("maria",30,"C45",12,9, new Date());
    le dernier argument est de type Date

  10. #10
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Le dernier paramètre de ta fonction doit être de type Date et tu lui passes un String.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [DEBUTANTE] Formater et inserer une date dans une
    bonsoir,
    j'ai essayé le bout de code que tu m'as envoyé thibaut mais ça ne marche pas

    m.AjoutS("maria",30,"C45",12,9, new Date());

    j'ai une une autre erreur qui est la suivante:

    the constructor Date() is undefined


    tout le code est le suivant :

    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
    public void AjoutS(String Enseignant,int EtatP,String Module,int he,int hp,Date dateActuelle)
    	{
     
    		dateActuelle= new Date(); //création d'un objet date et mise à jour de la date courante
     
     
    		dateActuelle.getTime(); //mise a jour de la date courante
     
    		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");//création d'un format de date pour Mysql
     
    		dateFormat.format(dateActuelle); //une chaine date formatée.
     
    		String requete="INSERT INTO services(NomEnseignant,Module,EtatPaiement,NbHeuresPrevues,NbHeuresEffectuees, DateMaj) VALUES(?,?,?,?,?,?)";
    	    	PreparedStatement st = null;
    	       //Connection conn = null;
    	        try{
     
    	        st = conn.prepareStatement(requete);
    	        st.setString(1,Enseignant);
    	        st.setString(2,Module);
    	        st.setInt(3,EtatP);
    	        st.setInt(6,he);
    	        st.setInt(5,hp);
    	        st.setDate(4,new java.sql.Date(dateActuelle.getTime()));
    	        st.execute();
    	        }
    	        catch(SQLException e)
    	        {
    	        	e.printStackTrace();
     
     
    	        }
     
    public static void main(String[] args) {
     
    		Mysql m=new Mysql();
                    m.AjoutS("maria",30,"C45",12,9, new Date());
    }
    merci d'avance pour votre aide.

  12. #12
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    dans ton code utilise et non

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [DEBUTANTE] Formater et inserer une date dans une
    Bonjour,
    et merci bcp pour votre aide.
    grâce à vous j'ai réussi à résoudre le pb.
    merci encore, bonne chance et bonne journée

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [DEBUTANTE] Formater et inserer une date dans une
    salut,
    une autre question:
    et si je veux pas insérer la date du système comment faire? car je me suis rendue compte que je suis soumise à cette date dans mon insertion.
    merci d'avance.

Discussions similaires

  1. [MySQL] insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/08/2014, 11h10
  2. insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2014, 16h31
  3. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16

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