2017-02-17 17 views
0

Я использую java.sql.Connection и java.sql.Date доступ к дате вот мой код:Невозможно сохранить дату (мм/дд/гг) в базе данных

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    if(jTextArea1.getText().equals("")) 
    JOptionPane.showMessageDialog(null, "Please Enter the Expence Description. "); 

else if(jComboBox4.getSelectedIndex()<1) 
    JOptionPane.showMessageDialog(null, "Please Select the Type."); 

else if(jDateChooser1.getDate().equals("")) 
    JOptionPane.showMessageDialog(null, "Please Enter the Date. "); 

else if(jTextField3.getText().equals("")) 
    JOptionPane.showMessageDialog(null, "Please Enter the Amount."); 

else{ 
    try{ 
    con= DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","1234"); 
    ps=con.prepareStatement("insert into work values(?,?,?,?)"); 
    ps.setString(1, jTextArea1.getText()); 
    ps.setString(2, jCom.getDate());boBox4.getSelectedItem().toString()); 
    ps.setDate(3, (Date) jDateChooser1.getDate()); 

Но это дает ошибку как

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date 

Может кто-нибудь дает решение для вышесказанного?

+1

проверки этого http://stackoverflow.com/questions/530012/how-to -convert-java-util-date-to-java-sql-date – Maddy

+0

Кроме того, 'jDateChooser1.getDate(). equals (" ")' всегда будет возвращать false, поскольку дата не может быть равна строке. –

+0

У вас есть точка с запятой в середине строки кода: '... jCom.getDate()); boBox4 ...' –

ответ

2

ps.setDate (3, (Дата) jDateChooser1.getDate());

Вместо приведения даты в коде выше, конвертировать UTIL Дата в SQL Дата, как показано ниже:

java.sql.Date date = new java.sql.Date(new java.util.Date().getTime()); 
1
in fact the format is used yyyy-MM-dd, just use a SimpleDateFormat to format the date value to the desired format when retriving a date value...... 

SimpleDateFormat dateFormat= new SimpleDateFormat("dd/MM/yyyy"); 
String strDate = dateFormat.format(rs.getDate("column name"));