Вставьте Java.sql.Date в базу данных Derby - PullRequest
3 голосов
/ 21 июля 2011

Я пытаюсь вставить объект даты в базу данных, но он говорит, что я пытаюсь вставить целое число.Вот мой код:

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'.

1 Ответ

4 голосов
/ 21 июля 2011

Чтобы сделать это, используйте вместо этого подготовленный оператор и используйте установщик.

В настоящее время вы выравниваете свою дату до строкового значения (которое должно быть в правильном формате, чтобы база данных работала), и теряете, что это дата, поэтому базе данных необходимо ее проанализировать.Вы избегаете этого, используя подготовленное утверждение.

...