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 :

MySQL et date


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 26
    Points
    26
    Par défaut MySQL et date
    Bonjour,

    je travaille avec une petite base de données MySQL pour gérer des emprunts de matériel (ordinateur, appareil photo, etc). Dans ma table "emprunts" il y a, entre autres, une date d'emprunt et une date de retour, que j'ai déclaré en "varchar" (ça me semblait plus simple) Lorsque j'essaie de tester l'emprunt d'un objet, je reçois un message d'erreur:
    "com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'Date_Emprunt' at row 1" Je pense avoir donné la capacité suffisante et je ne comprends pas d'où vient l'erreur.
    Je joins quelques classes, peut-être le problème vient-il de ma conception.
    Merci de m'orienter pour trouver la solution.
    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
     
    public class Emprunt
    {
        Materiel mat;
        Emprunteur e;
        static GregorianCalendar dateE;
        static GregorianCalendar dateR;
        static int dR;
        static int mR;
        static int aR;
     
        public Emprunt()
        {
            mat = null;
            e = null;
            dateE = new GregorianCalendar();
            dateR = null;
            dR = 0;
            mR = 0;
            aR = 0;
        }
        public String getMateriel()
        {
            return mat.getType();
        }
        public int getNMat()
        {
            return Materiel.numero;
        }
        public int getNEmp()
        {
            return Emprunteur.numero;
        }
        public String getEmprunteur()
        {
            return e.getNom();
        }
        public GregorianCalendar getDateE()
        {
            return dateE;
        }
        public GregorianCalendar getDateR()
        {
            dateR = Emprunt.dateRetour();
            return dateR;
        }
        public static GregorianCalendar dateRetour()
        {
            dR = dateE.get(Calendar.DAY_OF_MONTH);
            dateR = new GregorianCalendar(dR+7, mR, aR);
            return dateR;
        }
    }
    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
     
    public class EmpruntFactory
    {
        static Connection con = null;
        static PreparedStatement ps = null;
        static Emprunt emprunt = new Emprunt();
     
        public static void Insert()
        {
            String nomE = EmpruntFrame.saisirNom.getText().toString().trim();
            int numE = Integer.parseInt(EmpruntFrame.saisirNE.getText().trim());
            String typeM = EmpruntFrame.stype.getSelectedItem().toString();
            int numM = Integer.parseInt(EmpruntFrame.saisirNM.getText().trim());
            String dateE = String.valueOf(Emprunt.dateE);
            String dateR = String.valueOf(Emprunt.dateRetour());
     
            try
            {
                Class.forName("com.mysql.jdbc.Driver");
                con = DriverManager.getConnection("jdbc:mysql://localhost/emprunts", "root", "sa@admin");
                ps = con.prepareStatement("INSERT INTO emprunts (Numero_Emp,Nom_Emp,Type_Materiel,Numero_Mat,Date_Emprunt,Date_Retour) VALUES (?,?,?,?,?,?)");
                ps.setInt(1,numE );
                ps.setString(2,nomE);
                ps.setString(3,typeM);
                ps.setInt(4,numM);
                ps.setString(5,dateE);
                ps.setString(6,dateR);
                ps.execute();
                con.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut
    Quelle est la taille du champs date en question dans la base et quelle est la taille de la chaine que tu essaies d'insérer ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    Bonjour slevy et merci d'avoir pris le temps de me répondre. En effet, j'ai mal géré au niveau de ma date GregorianCalendar. J'ai utilisé ça car j'ai vu que la classe Date est abandonnée au profit de la première, mais je m'y suis mal pris.
    Je vais revoir ça.
    Merci encore

Discussions similaires

  1. [MySQL] Mysql Formulaire Date liée
    Par fazpedro dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/09/2011, 09h10
  2. Extraire d'une table mysql les dates > a 30 min
    Par otmaneha dans le forum Débuter
    Réponses: 4
    Dernier message: 24/08/2011, 11h23
  3. [MySQL] [Réglé]Requette MySql avec date
    Par pony99 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/02/2009, 15h26
  4. comparaison date Mysql et date paramètre java
    Par kaskai dans le forum Requêtes
    Réponses: 10
    Dernier message: 18/09/2008, 13h01
  5. [MySQL] Fonctions Date heure
    Par Marmottux72000 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 07/12/2006, 14h24

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