请教一下:
我想删jsp页面上的记录,通过checkbox+submit把选上的记录全部删除!!!这个业务怎么写?

解决方案 »

  1.   

    首先得获得checkbox里面的value属性值,一般checkbox里面存放的是数据的主键id,假设为int型
    使用request.getParameterValue([chenkBoxName]),其返回值是一个String型的数组
    然后把这个String型的数组遍历一遍,使用int型的数组获取,假设String型数组为string[]
    int[] idList = new int[string.length];
    for(int i=0;i<string.length;i++){
    idList = Integer.parseInt(string[i]);
    }
    然后再使用idList里面存放的id号来进行删除操作
    PreparedStatement ps = con.prepareStatement("delete from tableName where id=?");
    for(int i = 0;i<idList.length;i++){
    ps.setInt(1,idList[i]);
    ps.execute();
    }
      

  2.   

    ps.setInt(1,idList[i]);这句话是个什么意思?我看了书上也是这样写的!!!
      

  3.   

    这是JAVA中的预处理.不过据说执行速度不如直接用Statement.好处是可以在后面的语句中通过setInt,setString之类的方法来设置参数
      

  4.   


    PreparedStatement ps = con.prepareStatement("delete from tableName where id=?");
    for(int i = 0;i<idList.length;i++){
    ps.setInt(1,idList[i]);
    ps.execute();
    }
    中,ps.setInt(1,idList[i]);就表示将idList[i]这个值设置为"delete from tableName where id=?"中的第一个"?"(当然,这里只有一个-_-!),
    每次循环的语句执行效果相当于:"delete from tableName where id="+idList[i]
    很明显,用了预处理可以在其后随意设置参数的类型(当然,你数据库中字段的类型肯定是固定的,所以说起来这个好处几乎可以忽视掉),但类型还是必须同数据库中的字段一致!