我使用swingxLabs的组件jXDatePicker1以图形格式选择日期并尝试将其存储在derby中创建的数据库中。我的代码是这样的:
Date date=jXDatePicker1.getDate();
PreparedStatement statement = connect
.prepareStatement("INSERT INTO BILLING (DATE, DHRNUMBER) VALUES('"+date+"', "+dhrNumber+")");
我得到的错误是:
java.sql.SQLDataException: The syntax of the string representation of a datetime value is incorrect.
我做得对吗?或者可以通过其他方式解决这个问题。
由于
答案 0 :(得分:1)
Derby的内置DATE数据类型支持一个简短的字符串格式列表:http://db.apache.org/derby/docs/10.9/ref/rrefsqlj18730.html
由于您使用的是PreparedStatement,因此最好的办法是准备语句
INSERT INTO BILLING (DATE, DHRNUMBER) VALUES(?,?)
然后使用setDate()和setInt()方法替换您的实际值: http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html
答案 1 :(得分:0)
这个替代方案对我来说非常有用:
Date d=jXDatePicker1.getDate();
System.out.println(d);
DateFormat df=new SimpleDateFormat("MM/dd/yyyy");
String date=df.format(d);
System.out.println(date);
PreparedStatement statement = connect
.prepareStatement("INSERT INTO BILLING (DATE) VALUES('"+date+"')");