2012-02-27 91 views
2

我有一個表單,它捕獲用戶在JFormattedTextField中輸入的日期。然後,需要使用PreparedStatement將Date存儲在數據庫(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 2012-02-27 17:11:27

+0

而錯誤是?你看過錯誤信息嗎?它應該可以幫助你,而不是一些可以忽略的亂碼。切勿忽略異常。 – 2012-02-27 17:12:02

回答

6

錯誤消息是什麼?

猜測它實際上是一個編譯器錯誤消息,你確定你使用的是java.sql.Date而不是java.util.Date?編輯:當你編輯的問題,是的,你將需要new java.sql.Date(date.getTime())什麼(在Java中的數據處理是一團糟!)(目前))。

+1

我用pStat.setDate(4,新的java.sql.Date(dob.getTime()));它的工作。謝謝。 – Shaheer 2012-02-27 17:37:49

相關問題