1
我已經開始使用準備好的語句來執行我的sql更新,但是我在更新時似乎遇到了問題。邏輯看起來很合理,但每次進入更新段時都會出現錯誤。我可以刪除或插入罰款。 Anywho ...準備好的語句更新問題
Connection con = getDBConnection();
PreparedStatement pstmt = null;
String query = "update table set int = ?, String= ? where int= ? and date= ?";
pstmt = con.prepareStatement(query);
pstmt.setInt(1, var);
pstmt.setDate(2, sqlDate);
pstmt.setInt(3, intVar);
pstmt.setString(4, stringVar);
pstmt.executeUpdate();
我在這裏做錯了什麼?我已經完成了所有的故障排除工作,除此之外,一切似乎都很順利。
Error = "A non-numeric character was found where a numeric was expected"
所以,在「pstmt.setWhatever」是放慢參數值(例如1,2,3 ,4)與查詢語句或數據庫列安排相關? 澄清:數據庫有4列,abcd 語句設置爲ac其中bd 然後,集合語句爲a = 1,c = 2,b = 3和d = 4 通常,在數據庫中設置信息時這將是 a = 1 b = 2 c = 3 d = 4 ... 如果這是有道理的。 – cphilpot 2012-03-12 23:29:36
@cphilpot:它與SQL相關 - 您指定的索引作爲「setDate」的第一個參數等等是SQL *中的位置*。數據庫列順序在這裏是無關緊要的。 (如果你剛剛完成了'INSERT INTO X VALUES(?,?,?,?)',這將是相關的 - 但我個人認爲這是一個壞主意。) – 2012-03-12 23:31:18
這可能是我困惑的地方。因爲我有一個與列號相關的插入語句。去嘗試你的建議,看看是否能解決它。剛開始使用準備好的陳述今天(被錯誤地教導)。 – cphilpot 2012-03-12 23:33:05