提示什么错误,如果字符串为空,肯定错误。如果是非数字,每项两边要加单引号。如果逗号后是空也是错误
我是想传来一串id..,id为字符串,
? 代表的是一串字符串id,中间有逗号分割的,比如abc,abd这串字符串,想进行批量删除,但这样传进去是错误的 不为空,已判断过
@储宏庆: abc,abd 是字符串,每项两边要加单引号 'abc','abd'
(?,?,?,?,?,?,?) 这样写,逗号不算值,不能占位
?="'"+"1,2,3,4".Replace(",","','")+"'"
不知道你是不是这意思 你是想拼接个字符串放到in里面之后 执行批量删除的话 那实现层一定要拼装好
还要注意是什么数据库oracle不识别双引号
打个比方mybatis mysql
StringBuffer ids = new StringBuffer();
int[] data = new int[3];
data[0]=1;data[1]=2;data[2]=3;
for(int i=0;i<data.length;i++){
ids.append("'").append(data[i]).append("',");
}
map.put("ids",ids);
sql:delete from tablename where id in (#{ids});
或者 可以不用对参数处理瓶装直接使用foreach进行遍历删除
当然我指的是mybatis得情况下 要是别的orm框架 就再换别的解决办法