Java Dateformat错误

时间:2011-08-29 08:04:15

标签: java date datechooser

我正在使用JDatechooser netbeans swing插件进行桌面应用程序开发。默认情况下,其dateformat为mm / dd / yy,但不是db所需的格式。我需要将其转换为yyyy-mm-dd格式。我尝试使用SimpleDateformat类,它给了我以下错误:com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '8/29/11' for column 'registered_date' at row 1

任何人都可以给我一个很好的解决方案来正确地做到这一点

由于

2 个答案:

答案 0 :(得分:6)

您的数据库根本不需要特定的日期格式 - 您不应该首先将数据作为字符串插入。您应该使用准备好的声明并使用setDate。理想情况下,您应该尽可能少地执行字符串转换 - 从JDateChooser中获取值时不需要一个,并且在插入数据库时​​不需要一个:

// Unfortunately you need to convert from java.util.Date to java.sql.Date
statement.setDate(1, new java.sql.Date(chooser.getDate().getTime()));

(请注意,你可能需要考虑时区,但这是另一回事......你可以调用setDate重载也需要日历。)< / p>

如果您通过构建包含值的完整SQL语句插入(或查询)数据,则应立即停止 。您不仅会遇到这种转换问题,而且还会遇到SQL注入攻击。始终使用预准备语句并将任何参数指定为参数,而不是将它们包含在SQL中。

答案 1 :(得分:1)