如下代码我生成的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);
}

解决方案 »

  1.   

    打印一下sql试试,看有没有拼错,或者有没有什么异常
      

  2.   

    你在executeSQL之前打印一下:
    System.out.println(sql.substring(0,sql.length()-1)+")");
    是组装的你要的 “delete from sjk_llwx where 1=1 and llwxid in (?,?,?);”???
    如果是直接复杂数据库中编辑器中执行一下看看,如果SQL语句没问题,那就是没有commit
      

  3.   

    1=1 and 是多余的,原因从代码里面看不出来
      

  4.   


    prepareStatement貌似不需要commit..自动的。
    【delete from sjk_llwx where 1=1 and llwxid in (?,?,?);】
    上面这条SQL在组装完活后,不应该有“;”号。你检查下,看看你的有没有。
      

  5.   

    1 sql没有单引号,单引号是某些工具比如PL/SQL的分行符号。
    2 sqlParams.add(values[i]);CSDN真傻X,发个贴还要字数限制。