准备好的声明更新问题

时间:2012-03-12 23:22:19

标签: java sql prepared-statement

我已经开始为我的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"

1 个答案:

答案 0 :(得分:2)

你的字符串和日期是错误的 - 当第二个参数位于“String =?”的上下文中时,你正在调用setDate(2, ...)setString(4, ...)当第四个参数位于“date =?”的上下文中时。

不可否认,你得到的错误有点奇怪,但我只能看到......