2015-06-14 6 views
0

Как я могу вставить jdatechooser из java в базу данных? Я использовал все решения сети, но все равно не могу вставить. Пожалуйста, помогите мне. Я использую среду eclipse. Это мой код:Вставить jdatechooser из java в базу данных

try { 
    PreparedStatement stm= (PreparedStatement) con.prepareStatement("INSERT INTO d"+ 
      "(dateEntré)"+ 
      "VALUES(?)"); 

    ((PreparedStatement)stm).setDate(1,convertUtilDateToSqlDate(dateChooser.getDate())); 
    statement.execute(); 
    JOptionPane.showMessageDialog(null,"added"); 
} catch (Exception e1) { 
    JOptionPane.showMessageDialog(null,e1.getMessage()); 
} 
+0

В чем проблема? Вызывается ли исключение? Если да, отправьте трассировку стека. И почему два утверждения ('statement' и' stm')? И почему 'executeQuery' на INSERT? – copeg

+0

Является ли тип столбца в базе данных совместимым с java.sql.Date? – MadProgrammer

+0

Что такое '' stmt'? Вы используете 'statement', когда вы готовите оператор и выполняете запрос, но привязываете значение к' stmt'? – MadProgrammer

ответ

0

Ваш пример кода, как представляется, не так, и это может быть просто опечатка, но так как вы не представили никакой другой информации в отношении ошибки, это все, что мы должны перейти на ...

Вы создать PreapredStatement называется stmt, но затем использовать statement для execute запроса.

Вы должны использовать ту же переменную/экземпляр для связывания и excute запроса. Вероятно, вы также должны использовать executeUpdate вместо execute, это предоставляет дополнительную информацию, когда оператор выполняется о количестве строк, на которые повлияло обновление.

try { 
    PreparedStatement stm= (PreparedStatement) con.prepareStatement("INSERT INTO d (dateEntré) VALUES(?)"); 

    stm.setDate(1,convertUtilDateToSqlDate(dateChooser.getDate())); 
    int rows = statement.executeUpdate(); 
    if (rows > 0) { // Should be 1 
     JOptionPane.showMessageDialog(null,"added"); 
    } else { 
     JOptionPane.showMessageDialog(null,"Update failed for unknown reason"); 
    } 
} catch (Exception e1) { 
    JOptionPane.showMessageDialog(null,e1.getMessage()); 
    e1.printStackTrace(); 
} 

Это, конечно, предполагает, что столбец базы данных является совместимым типом java.sql.Date

Присмотритесь на JDBC Database Access и Using Prepared Statements для получения более подробной информации.

+0

Большое спасибо MadProgrammer, все в порядке, но я хочу задать вопрос, что это значит, строка> 0 и еще раз спасибо :) –

+0

'executeUpdate' возвращает количество строк, которые были обновлены, в вашем случае это должно быть' 1', поэтому мы проверяем, больше ли значение 'row', чем' 0' – MadProgrammer

+0

. Ответьте, пожалуйста, как я могу изменить формат datechooser на dd-mm-yyyy эту дату, чтобы –

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