0

Javaで日付/時刻を処理する必要があるときはいつでも、私は悲しくなります

文字列を解析し、それを日付オブジェクトに変換して、preparepared ステートメントに挿入しようとしています。私はこれを機能させようとしてきましたが、運がありません。クラスをコンパイルしようとすると、役立つエラー メッセージも表示されます。

「スレッド「メイン」の例外 java.lang.Error: 未解決のコンパイルの問題: タイプ PreparedStatement のメソッド setDate(int, Date) は、引数 (int, Date) には適用できません」

ええと?

これが問題のコードです。

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();

}
4

3 に答える 3

8

PreparedStatement.setDateは、 java.util.Dateではなくjava.sql.Dateを取ります。

(興味深いことに、これがコンパイル時のエラーとして実際に表示されないのはなぜですか?テスト実行でそのポイントに到達することなくコンパイルの失敗を解決できれば、あなたの生活ははるかに楽になります...)

于 2008-12-16T10:10:28.427 に答える
4

私の推測では、java.util.Dateとjava.sql.Dateを混合しました...

于 2008-12-16T10:09:42.733 に答える
1

文字列から MySQL の日付/時刻

import java.sql.Date;
import java.sql.Time;

 statement.setDate(4, Date.valueOf("2009-08-26"));
 statement.setTime(5, Time.valueOf("12:04:08"));
于 2009-08-26T17:06:15.260 に答える