jdbcTemplate.update为何执行删除操作出错

yesshi 2012-07-20
   程序中执行删除操作,如下
String sql = "delete from Whitelistprice where ACCOUNTID=? and KEYID IN (?)";
//cpcIdList大于1000时,分批删除名单
List<List<Long>> il = CollectionsUtils.devideList(cpcIds, 1000);
for (List<Long> list : il) {
getJdbcTemplateStat().update(sql, new Object[]{accountId,list});
}
    报错:
PreparedStatementCallback; invalid ResultSet access for SQL [delete from Whitelistprice where ACCOUNTID=? and KEYID IN (?)]; nested exception is java.sql.SQLException: 无效的列索引
    这个错很奇怪,因为我在SQL数据库上执行这条SQL是没有问题的,不知道程序是错在哪里,希望大家指教一下啊~~
liuqibo861129 2012-07-20
new Object[]{accountId,list.toString()}
yunzhu 2012-07-23
KEYID IN (?) 应该是这个地方有问题,
Spring JDBC Template处理后的SQL可能会变成:
KEYID IN ('1,2,3')

这个地方自己替换SQL字符串吧
blacklab 2012-07-25
我也遇到了这个问题?
yunzhu 2012-07-25
blacklab 写道
我也遇到了这个问题?


我也遇到过,就是像我上面回复的那种情况:
suncf1985 2012-08-30
你最好是把  ? 号的值打出来,看看到底是什么东西!
你就全明白了!
Global site tag (gtag.js) - Google Analytics