Java:从字符串创建日期对象并插入MySQL

0 java sql date prepared-statement

任何时候我必须处理java中的日期/时间,这让我很难过

我正在尝试解析一个字符串并将其转换为日期对象以插入preparepared语句中.我一直试图让这个工作,但我没有运气.当我去编译类时,我也收到了有用的错误消息.

"线程中的异常"主"java.lang.Error:未解决的编译问题:PreparedStatement类型中的方法setDate(int,Date)不适用于参数(int,Date)"

呃WTF?

这是违规代码.

for(int i = 0; i < flights.size(); i++){

    String[] details = flight[i].toString().split(":"); 
    DateFormat formatter ; 
    formatter = new SimpleDateFormat("ddMMyyyy");
    Date date = formatter.parse(details[1]); 

    PreparedStatement pstmt = conn.prepareStatement(insertsql);
    pstmt.setString(1, details[0]);
    pstmt.setDate(2, date);
    pstmt.setString(3, details[2] + "00");
    pstmt.setString(4, details[3]);
    pstmt.setString(5, details[4]);
    pstmt.setString(6, details[5]);
    pstmt.setString(7, details[6]);
    pstmt.setString(8, details[7]);
    pstmt.setString(9, details[8]);
    pstmt.executeUpdate();

}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

PreparedStatement.setDate采用java.sql.Date,而不是java.util.Date.

(出于兴趣,你怎么不实际看到这是一个编译时错误?如果你能解决编译失败而不必在测试运行中达到这一点,你的生活会变得容易多了......)