我正在尝试将日期对象插入数据库,但它说我试图插入一个Integer。这是我的代码:
public void insertAssignment(long studentId, String newAssignment, int ptsTotal, int ptsRecieved, String category, Date dueDate, String term, int yr) {
java.sql.Date temp = new java.sql.Date(dueDate.getTime());
try{
s.execute("INSERT INTO Assignments " +
"VALUES (" + studentId + ",'" + newAssignment + "'," + ptsTotal +
"," + ptsRecieved + ",'" + category + "'," + temp
+ ",'" + term + "'," + yr + ")");
System.out.println("Assignment inserted.");
}
catch(SQLException error){
System.err.println("Unable to insertAssignment.");
error.printStackTrace(System.err);
System.exit(0);
}
}
我的错误: java.sql.SQLSyntaxErrorException:“DATE”类型的列不能包含“INTEGER”类型的值。
答案 0 :(得分:4)
为此,请使用预准备语句并使用setter。
目前,您将日期展平为字符串值(需要采用正确的格式才能使数据库正常工作)并丢失它是一个日期,因此数据库需要对其进行解析。你可以使用准备好的声明来避免这种情况。