我正在尝试读取Excel日期值并将其存储到我的数据库中。
以下代码就是我所拥有的:
Date birthdate = null;
case 8:
birthdate = cell.getDateCellValue();
break;
切换案例是将Date存储在变量中,然后将其放入数组中。
Identity id = new Identity(BSN, sort, birthdate, place);
我将多个这些值存储到一个arraylist中。
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;
}
然后插入我从Array获得的值,我使用这个方法:
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);
但不幸的是,这对我没有用。
答案 0 :(得分: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());