jdbc 预处理 in 的问题
如下代码我生成的sql语句是“delete from sjk_llwx where 1=1 and llwxid in (?,?,?);”然后传了值 就是删不掉数据 请大神帮忙解释下
String[] values=request.getParameterValues("delbox");
int length=values.length;
if(length>0){
StringBuffer sql=new StringBuffer();
sql.append("delete from sjk_llwx where 1=1 and llwxid in ( ");
SqlParameter sqlParams=new SqlParameter();
for(int i=0;i<length;i++){
sql.append("?,");
sqlParams.add("'"+values[i]+"'");
}
DBDAO.executeSQL((sql.substring(0,sql.length()-1)+")"), sqlParams);
dao.executeSQL((sql.substring(0,sql.length()-1)+")"), sqlParams);
} --------------------编程问答-------------------- 有commit没? --------------------编程问答-------------------- 打印一下sql试试,看有没有拼错,或者有没有什么异常。。。 --------------------编程问答-------------------- 你在executeSQL之前打印一下:
System.out.println(sql.substring(0,sql.length()-1)+")");
是组装的你要的 “delete from sjk_llwx where 1=1 and llwxid in (?,?,?);”???
如果是直接复杂数据库中编辑器中执行一下看看,如果SQL语句没问题,那就是没有commit --------------------编程问答-------------------- 1=1 and 是多余的,原因从代码里面看不出来 --------------------编程问答--------------------
围观。 --------------------编程问答-------------------- 1.数据库连错了。
2.表不存在。
3.自动事务没有设置。 --------------------编程问答--------------------
prepareStatement貌似不需要commit..自动的。
【delete from sjk_llwx where 1=1 and llwxid in (?,?,?);】
上面这条SQL在组装完活后,不应该有“;”号。你检查下,看看你的有没有。 --------------------编程问答--------------------
1 sql没有单引号,单引号是某些工具比如PL/SQL的分行符号。
2 sqlParams.add(values[i]);
CSDN真傻X,发个贴还要字数限制。 --------------------编程问答-------------------- 上面的“单引号”是“分号”
补充:Java , Java EE