2017-06-03 64 views
1

我想讀取Excel日期值並將其存儲到我的數據庫中。如何讀取Excel日期並將其存儲到我的數據庫中?

下面的代碼是我的本錢:

Date birthdate = null; 
case 8: 
     birthdate = cell.getDateCellValue(); 
     break; 

的開關情況的日期存儲在一個變量,並把它變成一個數組之後。

Identity id = new Identity(BSN, sort, birthdate, place); 

我將這些值的多個值存儲到數組列表中。

for(Identity id : Identities) { 
     System.out.println(id.toString()); 
     idmc.insertID(""+id.getBSN(), id.getSort(), id.getBirthdate(), id.getPlace()); 
    } 

日期的getter和setter很明顯,但我會發布它以防萬一。

public void Birthdate (Date birthdate) { 
    this.birthdate = birthdate; 
} 

public Date getBirthdate() { 
    return birthdate; 
} 

然後插入我從陣列獲取值,我用這個方法:

public String insertID(String BSN, String SoortID, Date UitgiftedatumID, String UitgifteplaatsID) { 
    String returning = null; 
    try { 
     query = "insert into Identiteit values(?,?,?,?);"; 

     pst = connection.prepareStatement(query); 
     pst.setInt(1, Integer.parseInt(BSN)); 
     pst.setString(2, Sort); 
     pst.setDate(3, birthdate); 
     pst.setString(4, place); 

     int response = pst.executeUpdate(); 
     returning = response +" Records has/have been edited"; 

    } catch (SQLException e) { 
     returning = " "; 

    } 

    return returning; 
} 

然而,該行:pst.setDate(3, UitgiftedatumID);說:Incomatible types: java.util.Date cannot be converted to java.sql.Date.

我已經試過像鑄造: pst.setDate(3, (java.sql.Date) UitgiftedatumID);

但不幸的是,這並沒有爲我工作。

回答

1

Java中有兩個Date類:java.util.Date(通用日期時間類)和java.sql.Date(表示日期(無時間分量)的JDBC相關類)。 PreparedStatement#setDate()方法接受後者作爲其第二個參數。

java.util.Date實例轉換爲實例java.sql.Date,你可以做到以下幾點:

java.util.Date UitgiftedatumID = ... // some value 
java.sql.Date sqlDate = UitgiftedatumID == null ? null : new java.sql.Date(UitgiftedatumID.getTime()); 
+0

相反初始化現在我使用的代碼中的日期。然而,'.getTime'部分給出了一個評論:'取消引用空指針',所以我得到了一個'NullPointerException'的規則,我初始化'java.sql.Date sqlDate = new java.sql.Date(UitgiftedatumID .getTime());'this。 – Wout

+0

對不起,我錯過了初始日期可能爲'null'的可能性。我已經更新了我的答案來處理這個問題。 –

+0

非常感謝你非常非常的人!它現在有用!最後,日期顯示在我的數據庫中。非常感謝你,祝你有美好的一天! – Wout

相關問題