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(); } } }
Partager