bonjourrr ,
Si je veux écrire une date (AAAA-MM-JJ) dans une jTextField en java et l'envoyée a une base de donnée Mysql avec une requete INSERT INTO,
Quoi faire? Quelqu'un peut m'aider??
Merci![]()
bonjourrr ,
Si je veux écrire une date (AAAA-MM-JJ) dans une jTextField en java et l'envoyée a une base de donnée Mysql avec une requete INSERT INTO,
Quoi faire? Quelqu'un peut m'aider??
Merci![]()
Bonjour,
Tu convertis le String récupérer par ton jTextField en Date à l'aide de SimpleDateFormat et pour insérer dans la table, utilise setDate de ton PreparedStatement.
A+.
pouvez-vous m'en donner la stucture du code?
parce que c'est la première fois que j'utilise SimpleDateFormat et setdate??![]()
t'oublie ton ami google
voila http://docs.oracle.com/javase/1.4.2/...ateFormat.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");//format String s = sdf.format(new Date());
Quelque chose comme ça
Tu trouveras des exemples en recherchant sur google.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateFromTextField = "2012-10-25"; Date date = sdf.parse(dateFromTextField); PreparedStatement preparedStm = connexion.prepareStatement("INSERT into nomTable(nomChampDate) VALUES(?)"); preparedStm.setDate(1, (new java.sql.Date(date.getTime()))); preparedStm.executeUpdate();
A+.
me donne 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 private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) { try { String desc = String.valueOf(indesc2.getText()); int a=Integer.parseInt(insum2.getText()); Class.forName(driver).newInstance(); cn=DriverManager.getConnection(url,user,pass); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateFromTextField = "2012-10-25"; Date date1 = (Date) sdf.parse(dateFromTextField); PreparedStatement preparedStm = cn.prepareStatement("INSERT into income(date) VALUES(?)"); preparedStm.setDate(1, (new Date(date1.getTime()))); preparedStm.executeUpdate(); cn.close(); }catch(Exception e){ System.out.println(e); } }
java.lang.NumberFormatException: For input string: ""![]()
Regarde la ligne de ton erreur. A priori, je suppose qu'il s'agit de
int a=Integer.parseInt(insum2.getText());
ce qui veux dire que tu n'a pas rentré de valeur dans insum2.
et ton code d'insertion est erroné:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 java.util.Date date1 = sdf.parse(dateFromTextField); PreparedStatement preparedStm = cn.prepareStatement("INSERT into income(date) VALUES(?)"); preparedStm.setDate(1, new java.sql.Date(date1.getTime())); preparedStm.executeUpdate();
le code a réussit avant d'ajouter à la table de la base de donnée une colonne date, et quand je la ajoutée j'ai eu beaucoup d'erreur.et la dernière erreur est celle-la:
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
et le code est celui-la:
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 private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) { try { String desc = String.valueOf(indesc2.getText()); int a=Integer.parseInt(insum2.getText()); Class.forName(driver).newInstance(); cn=DriverManager.getConnection(url,user,pass); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateFromTextField = indate2.getText(); Date date1 = (Date) sdf.parse(dateFromTextField); PreparedStatement preparedStm = cn.prepareStatement("INSERT into income(description,sum,date) VALUES(?,?,?)"); preparedStm.setDate(1, (new Date(date1.getTime()))); preparedStm.setString(2, desc); preparedStm.setInt(3, a); preparedStm.executeUpdate(); cn.close(); }catch(Exception e){ System.out.println(e); } }
le message d'erreur est clair, un java.util.Date, ce n'est pas un java.sql.Date.
la différence: ben c'est pas la même classe.
la solution: suffit de lire
Partager