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