2012-02-27 10 views
2

私は、ユーザーがJFormattedTextFieldに入力した日付を取得するフォームを用意しています。それから、DateはPreparedStatementを使用してデータベース(postgresql)に格納する必要があります。私はpStat.setDate(4、dob);という行にエラーメッセージを表示しています。JavaでPreparedStatementを使用してデータベースに日付を挿入する

Date dob = (Date)ftxtDOB.getValue(); 
     String add = txtAddress.getText(); 
     String country = txtCountry.getText(); 
     try { 
      Class.forName("org.postgresql.Driver"); 
      conn = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/postgres", "postgres","cisco"); 

      pStat = conn.prepareStatement("INSERT INTO customer_info VALUES (?,?,?,?,?,?)"); 
      pStat.setString(1, id); 
      pStat.setString(2, surname); 
      pStat.setString(3, fName); 
      pStat.setDate(4, dob); 
     }catch(Exception e){ 

     } 

編集:私はコンパイラからこのエラーメッセージがあります。

no suitable method found for setDate(int,java.util.Date) 
    method java.sql.PreparedStatement.setDate(int,java.sql.Date,java.util.Calendar) is not applicable 
     (actual and formal argument lists differ in length) 
    method java.sql.PreparedStatement.setDate(int,java.sql.Date) is not applicable 
     (actual argument java.util.Date cannot be converted to java.sql.Date by method invocation conversion) 

編集:解決しよう、私が使用:

pStat.setDate(4, new java.sql.Date(dob.getTime())); 
+0

また、どのようなエラーメッセージが表示される可能性がありますか?あなたは本当にcatch節を記入してください...少なくともe.printStackTrace()をそこに入れてください。 – pcalcao

+0

エラーは?エラーメッセージを読んだことがありますか?それはあなたを助けることになっていて、無視できるランダムな言葉遣いではありません。例外を無視してはいけません。 –

答えて

6

どのようなエラーメッセージが?

実際にコンパイルエラーメッセージであると推測して、java.sql.Dateを使用していて、java.util.Dateを使用していませんか?

編集:あなたが質問を編集したので、はいnew java.sql.Date(date.getTime())または何か(Javaのデータ処理が混乱しています!(現時点で))が必要です。

+1

私はpStat.setDate(4、新しいjava.sql.Date(dob.getTime()))を使用しました。それは働いた。ありがとうございました。 – Shaheer

関連する問題