0

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

我做对了吗?或者可以有其他方法来解决这个问题。

谢谢

4

2 回答 2

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

于 2013-04-06T19:48:14.083 回答
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+"')");
于 2013-04-09T13:06:33.853 回答