4

準備済みステートメントを使用して、文字列の日付を MySQL データベースに更新したいと考えています。私は多くのことを試しましたが、常にエラーが発生java.util.Date cannot parse into java.sql.Dateするか、その逆です。ここでは何もインポートしませんでした。回答に従ってインポートしてください。

public class Date1 
{ 
    public static void main(String args[]) 
    {
        String source="2008/4/5";              
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");                       
        java.sql.Date d=(Date) format.parse(source);             
        Class.forName("com.mysql.jdbc.Driver");        
        Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/employee", "root", "root");   
        PreparedStatement ps=con.prepareStatement("insert into ankur1 values(?)");          
        ps.setDate(1,(java.sql.Date) d);    
        ps.executUpdate();
    }
}
4

3 に答える 3

7

これを書く

java.sql.Date d= new java.sql.Date(format.parse(source).getTime());

これの代わりに:

java.sql.Date d=(Date) format.parse(source);

java.util.Dateサブタイプにキャストすることはできないためですjava.sql.Date。変換する必要があります。Bill the Lizard がコメントしたように、フォーマット文字列が実際の日付フォーマットと一致しないことにも注意してください。

于 2012-10-16T13:59:21.833 に答える
2
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());

pstmt.setTimestamp(1, date);

これを試してみてください..ありがとう

于 2013-04-06T10:27:05.280 に答える