我在設置PreparedStatement
以將新行插入到我的表中時遇到問題。我在我的SQL編輯器中測試了這個查詢,並且它工作成功,但是我無法使這個PreparedStatement正常工作。「列索引無效」嘗試插入一行時發生SqlException錯誤
String sql = "INSERT INTO table game(gamedate, type, world) values (TIMESTAMP '?', ?, '?');"
runQuery(sql, date, type, world);
...
protected runQuery(String sql, Object... params){
try {
initiateConnection();
PreparedStatement statement = connection.PrepareStatement(sql);
int i = 1;
for (Object p : params){
statement.setObject(i, p);
i++;
}
statement.executeUpdate();
} catch (Exception ex){
} finally {
//close up things
}
}
我在一些的println()來測試輸出增加,它似乎一切是非常好的
sql: INSERT INTO game(gamedate, type, world) values(TIMESTAMP '?', ?, '?');
date: 2012-03-13 21:42:14
type: 1
world: test
我得到的錯誤是
java.sql.SQLException無效列索引
我真的很難過。任何想法是什麼罪魁禍首?
爲什麼沒有第二個「?」的單引號 – Teja 2012-03-13 20:58:39
第二個字段是數字 – arnehehe 2012-03-13 21:00:02
第一列看起來有問題..是否有效? – Teja 2012-03-13 21:01:33