Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème insertion de dates dans la BDD Mysql

Sujet résolu
    21 octobre 2018 à 15:23:57

    Bonjour à tous , je travaille actuellement sur un projet de Librairie en ligne et je dois gérer le module des événements . J'ai une classe fille offre qui hérite de cette classe Événement. Je reçois un message d'erreur lorque je veux insérer une ligne dans la table des événements. 

    si je mets l’exécution de la première requête en commentaire , celle de l'insertion dans la table des offres se fait sans problème . Il n'y a pas de problème de connexion.

    Voici ci joint le code de l'insertion

    import java.sql.*;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import utlis.connexionBDSingleton;
    import iservices.IOffreService;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    public void creerOffre(Offre o) {
            
          
            String req1 = "INSERT INTRO evenement (`date_debut`,`date_fin`,`description`)"+"VALUES(?,?,?);" ; 
    
       
            String req2=  "INSERT INTO offre (`pourcentage_remise`,`id_ebook`,`id_admin`)"+"VALUES(?,?,?);" ;
            
          
            try {
                SimpleDateFormat df= new SimpleDateFormat("dd/MM/yyyy");
                java.util.Date date1 =new java.util.Date();
                java.util.Date date2 =new java.util.Date();
                try{
                date1 = df.parse(o.get_Date_debut());
                date2 = df.parse(o.get_Date_fin());
                System.out.println(date1);
                
                }catch(ParseException e){
                    System.out.println("Erreur");
                }
                 
       
               
                pste=con.prepareStatement(req1) ; 
                java.sql.Date sdate = new java.sql.Date(date1.getTime());
                System.out.println(sdate);
                java.sql.Date sdate1 = new java.sql.Date(date2.getTime());
                pste.setDate(1,sdate);
                pste.setDate(2,sdate1);
                pste.setString(3, o.get_Description());
                pste.executeUpdate()  ;
                
                pste1=con.prepareStatement(req2);
                pste1.setFloat(1,o.get_pourcentage());
                pste1.setInt(2,o.get_id_ebook());
                pste1.setInt(3, o.get_id_admin());
                pste1.executeUpdate();
            }   catch (SQLException ex) {
                Logger.getLogger(OffreService.class.getName()).log(Level.SEVERE, null, ex);
            }
                
        }

    Voici le code de la methode de test : 

    ackage test;
    import entites.Evenement; 
    import entites.Offre; 
    import java.util.*;
    import java.sql.*;
    
    import java.sql.Connection;
    
    /**
     *
     * @author qsus
     */
    
    import entites.Evenement;
    import utlis.connexionBDSingleton;
    import java.sql.Date;
    import services.OffreService;
    
    
    public class TestBD {
      
                
        public static void main(String[] args) {
         Connection myConn0 = connexionBDSingleton.getInstance()
                 .getConnection();
          Connection myConn1 = connexionBDSingleton.getInstance()
                 .getConnection(); 
          Connection myConn2 = connexionBDSingleton.getInstance()
                 .getConnection();
          
          Offre o;
            o = new Offre("18/05/1997","29/03/2019","Anniversaire", (float) 19.5,96160339,1);
          OffreService offreservice = new OffreService();
          offreservice.creerOffre(o);
        
        }
        
    }
    


    Je reçois ce message d'erreur : 

    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Erreur de syntaxe près de 'evenement (`date_debut`,`date_fin`,`description`)VALUES('1997-05-18','2019-03-29' à la ligne 1
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    	at com.mysql.jdbc.Util.getInstance(Util.java:386)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
    	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794)
    	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
    	at services.OffreService.creerOffre(OffreService.java:78)
    	at test.TestBD.main(TestBD.java:39)
    



    https://gyazo.com/c4abea6a32457a547f39c436e0d39533   : Une capture d'écran de ma table évenement

    Bien à vous , et merci d'avance

    -
    Edité par DylanElo 21 octobre 2018 à 15:26:16

    • Partager sur Facebook
    • Partager sur Twitter

    Problème insertion de dates dans la BDD Mysql

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown