2011-07-20 12 views
3

データベースに日付オブジェクトを挿入しようとしていますが、Integerを挿入しようとしています。ここに私のコードは次のとおりです。Java.sql.DateをDerbyデータベースに挿入

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

これは、日付列に一致する列が実際にはint値であるためです。また、PreparedStatementを使用します。あなたのSQLでは列名を追加します。 – CoolBeans

答えて

4

これを行うには、準備済みのステートメントを代わりに使用し、セッターを使用します。

現在のところ、日付を文字列値(これが動作するにはデータベースの適切な形式にする必要があります)に平準化し、データベースが解析する必要がある日付であることを忘れてしまいます。準備されたステートメントを使用してこれを回避します。

+0

これは完璧に機能しました! – RandellK02

関連する問題