Java 如何读取Excel日期并将其存储到数据库中?
我正在尝试读取Excel日期值并将其存储到数据库中 以下代码是我得到的:Java 如何读取Excel日期并将其存储到数据库中?,java,excel,date,Java,Excel,Date,我正在尝试读取Excel日期值并将其存储到数据库中 以下代码是我得到的: Date birthdate = null; case 8: birthdate = cell.getDateCellValue(); break; 开关的作用是将日期存储在变量中,然后将其放入数组中 Identity id = new Identity(BSN, sort, birthdate, place); 我将这些值中的多个存储到arraylist中 for(Identity id
Date birthdate = null;
case 8:
birthdate = cell.getDateCellValue();
break;
开关的作用是将日期存储在变量中,然后将其放入数组中
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());
}
日期的获取者和设置者是显而易见的,但我将发布它以防万一
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)代码>说明:不可匹配类型:java.util.Date无法转换为java.sql.Date。
我尝试了如下转换:pst.setDate(3,(java.sql.Date)UitgiftedatumID)代码>
但不幸的是,这对我不起作用 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());
我现在使用的不是初始化日期,而是您的代码。但是,.getTime
部分给出了一条注释,说明:取消对空指针的引用
,因此我在该规则上得到了一个NullPointerException
,其中我初始化java.sql.Date sqlDate=new java.sql.Date(uitGifteAtumid.getTime())代码>此。抱歉,我错过了初始日期可能为null
的可能性。我已经更新了我的答案来处理这个问题。非常感谢你,伙计!现在成功了!最后,日期显示在我的数据库中。非常感谢你,祝你有一个美好的一天!不客气!请毫不犹豫地投票和/或接受我的回答。如果您有(或可以得到)JDBC 4.2版JDBC驱动程序,您应该更愿意转换为java.time.LocalDate
,而不是java.sql.Date
,然后通过pst.setObject()
传递它。较新的Java日期和时间类通常对程序员友好得多,即使Apache POI(或您正在使用的Excel)还不支持它们,您可以越早开始将应用迁移到它们,效果越好。