2013-04-05 2 views
0

Я использую компонент swingxLabs jXDatePicker1, чтобы выбрать дату в графическом формате и попытаться сохранить его в базе данных, сделанной в дерби. Мой код был такой:Ошибка при сохранении jXDatePicker1 Значение даты в базе данных

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- JDBC ожидает java.sql.Date или 2- вы пытаетесь вставить/обновить строковое значение объекта Date, а затем с помощью фактический объект Date. Если вы используете PreparedStatement, вы можете использовать метод setDate. Покажите нам свой код обновления – MadProgrammer

+0

, можете ли вы выслать мне какую-либо ссылку на способ использования метода setDate? –

+0

Посмотрите на PreparedStatement в JavaDocs и посмотрите след JDBC от Oracl – MadProgrammer

ответ

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

встроенный DATE тип данных Derby поддерживает краткий список форматов строк: 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

Смежные вопросы