将jXDatePicker1日期值存储在数据库中时出错

时间:2013-04-05 19:07:29

标签: java sql derby swingx

我使用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.

我做得对吗?或者可以通过其他方式解决这个问题。

由于

2 个答案:

答案 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+"')");