【问题标题】:Insert Java.sql.Date into Derby Database将 Java.sql.Date 插入 Derby 数据库
【发布时间】:2011-10-09 19:41:06
【问题描述】:

我正在尝试将日期对象插入数据库,但它说我正在尝试插入整数。这是我的代码:

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”类型的值。

【问题讨论】:

  • 这是因为与你的日期列匹配的列实际上是一个int值。也使用 PreparedStatement。在您的 sql 中添加列名。

标签: java sql derby embedded-database


【解决方案1】:

为此,请改用准备好的语句并使用 setter。

目前,您将日期展平为字符串值(数据库需要采用正确的格式才能使其正常工作)并且失去它是日期,因此数据库需要解析它。您可以使用准备好的语句来避免这种情况。

【讨论】:

    猜你喜欢
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    相关资源
    最近更新 更多