想百度个居然搜索不到,请各位给予我宝贵的一点时间,小弟万分感谢。给链接,给源码,贴源码都行,我邮箱:[email protected] ,注:给的话请附上jsp页面源码

解决方案 »

  1.   

      给你提供下思路,你再试试,这样进步很快的。
      在jsp页面用checkbox,  name="ids"  value="每条记录的标识符,也就是主键" 
      点击删除按钮后,checkbox所在的form提交到action
      在action里面定义字符串数组 private String[] ids  ,加上get和set方法 。
      ids里面的值就是要批量删除的记录的id,遍历出来,对id进行单个删除操作。
      这里的id是字符串。如果用的主键是自增长的数字,可以把字符串转整形
      int n = java.lang.Integer.parseInt("22");
      自己试下吧,如果还不行给我id上的QQ发邮件,我会回复的。
      

  2.   

    批量删除也就是用For循环去一个一个的删除.
      

  3.   

    google 搜索getHibernate批量更新public void batchUpdateByQuery(final String queryString,
    final Object[] parameters) {
    try {
    getHibernateTemplate().execute(new HibernateCallback() {
    public Object doInHibernate(Session session) {
    Query query = session.createQuery(queryString);
    if (parameters != null) {
    for (int i = 0; i < parameters.length; i++) {
    query.setParameter(i, parameters[i]);
    }
    }
    query.executeUpdate();
    return null;
    }
    }); } catch (Exception e) {
    log.error("AbstractCommonDao基类里头批量修改出错", e);
    }
    }
      

  4.   


    也可以用AJAX方式、
    统一用表主键的值、做checkbox的id。name一样
    然后在通过js取得所有选中了的Id的值、把它们作为参数往后台传!/*
     * 删除信息
     */
    function deleteInfo(path){
    var chkName = document.getElementsByName('cheAll');
    var trueAfalse = false ;  
    var chec = new Array();
    jQuery("input:checkbox[name=cheAll]:checked").each(function(i){
    if(jQuery(this).attr("checked") == true){
    chec[i] = jQuery(this).attr("id") ;
    trueAfalse = true ;   
    }
    });   
    if(!trueAfalse){
    return alert('请选择删除项!');
    }
    if(confirm("您确定要删除吗?")){
    var urlx = path+"/platform/questionAction!delTbquestion.action";
    $.ajax({   
    type: "POST", //用POST方式传输   
    url:urlx,      //目标地址        
    data: "cheAll="+chec, 
    async:false, //作用是防止在ajax成功调用之前就调用$("#Pagination").pagination,这个时候数据个数还没有初始化    
    success:function(data) {
    alert(data);
    window.location.reload();
    }   
    }); 
    }      
    }在后台获取过后呢、需要在用split分割一下!!!public String delTbquestion(){
    PrintWriter out = null;
    try{
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    out = response.getWriter();
    //问题编号
    String Id = request.getParameter("cheAll");
    if(Id == null || Id.equals("") || Id.length() <= 0){
    out.print("请选择删除项!!!");
    return null;
    }
    //分割问题编号
    String Ids[] = Id.split(",");
    boolean bool = question.deleteTbquestionById(Ids);      
    if(bool){
    out.print("删除成功!!!");   
    }else{ 
    out.print("删除失败!!!");
    }
    }catch(Exception ex){
    out.print("操作失败!!!"); 
    ex.printStackTrace();
    }finally{
    if(out != null) out.close();
    }
    return null;
    } 记住、循环一定要在Service层循环!!!因为Spring的事务都是配置那里!
    dao层方法抛出异常、Service层又往外抛、在Action里面在try{}Catch
    如果Service层的方法执行完毕、那么就提交事务、如果方法执行过程中出错了!
    那么就事务回滚!!!public boolean deleteTbquestionById(String[] Id) throws Exception {
    boolean bool = false;
    for (int i = 0; i < Id.length; i++) {
    if(Id != null && !"".equals(Id))
    bool = daoHql.del(queryTbquestionById(Id[i]));
    }
    return bool;
    }
      

  5.   

     if(Id != null && !"".equals(Id))这个判定有问题!!!
    应该是id[i]~~~!!!My嘎嘎!!!
      

  6.   

    还循环去删呢,那样效率低啊,直接用hql删除:delete from Table where id in(?)
      

  7.   

    Hibernate官方文档上面我看了下只有batch-insert和batch-update;
    个人觉得4楼的想法还是蛮不错的。
      

  8.   

    jsp页面checkBox每个ID的值,进行多选,在form里面定义一个int[]这样的数组接收,然后在action里面取得form里int的数组,然后循环对应的ID,在根据循环的ID值进行删除,这个是struts1的
      

  9.   

    谢谢,大家的回答对我很有帮助,最后一个小疑问:除了“遍历删除”和“delete from Table where id in(?)”是不是还有个Spring的deleteAll()?
      

  10.   

    麻烦各位,小弟结贴前还有个疑问,也是最后的疑问,JS怎样获得用户全选的checkbox的value呢?比如下面的代码,怎么传递一个集合到action里去。
       <script type="text/javascript">
       /*全选JS*/
       var isChecked=true;
       function selectAll(){
       var cbxs=document.getElementsByName("slt");
       for(var i=0;i<cbxs.length;i++){
       if(cbxs[i].type=="checkbox"){
       cbxs[i].checked=isChecked;
       }
       }
       isChecked=!isChecked;
       }
       </script>
      </head>
      <body>
        <s:form action="indexAction!init">
        <table border=0>
         <tr>
         <td></td>
         <td>用户名:</td>
         <td><s:textfield name="indexForm.userDto.username"/></td>
         </tr>
         <tr>
         <td></td>
         <td>性别:</td>
         <td><s:textfield name="indexForm.userDto.usersex"/></td>
         </tr>
         <tr>
         <td></td>
         <td></td>
         <td><s:submit value="查询"/></td>
         </tr>
        </table>
        </s:form>
        <s:form action="">
        <table border=0>
         <tr>
         <th></th>
         <th>用户名</th>
         <th>性别</th>
         </tr>
         <s:iterator value="indexForm.userList">
         <tr>
         <td><input type="checkbox" name="slt" value="userid"/></td>
         <td width="100px"><s:property value="username"/></td>
         <td><s:property value="usersex"/></td>
         </tr>
         </s:iterator>
         <tr>
         <td width="80px"><input type="checkbox" name="slt" onClick="selectAll()"/>全选</td>
         <td></td>
         <td><a href="" onclick="">删除</a></td>
         </tr>
        </table>
        </s:form>
      </body>
    </html>
      

  11.   

    格式化一下上面的代码:
    全选/反选的js代码:
    <script type="text/javascript">
       /*全选JS*/
       var isChecked=true;
       function selectAll(){
       var cbxs=document.getElementsByName("slt");
       for(var i=0;i<cbxs.length;i++){
       if(cbxs[i].type=="checkbox"){
       cbxs[i].checked=isChecked;
       }
       }
       isChecked=!isChecked;
       }
       </script>
    需要提交的form表单:
    <s:form action="">
        <table border=0>
         <tr>
         <th>用户名</th>
         <th>性别</th>
         </tr>
         <s:iterator value="indexForm.userList">
         <tr>
         <td><input type="checkbox" name="slt" value="userid"/></td><!--这里是每一项纪录的复选框-->
         <td><s:property value="username"/></td><!--用户名称-->
         <td><s:property value="usersex"/></td><!--用户性别-->
         </tr>
         </s:iterator>
         <tr>
         <td><input type="checkbox" name="slt" onclick="selectAll()"/>全选</td>
         <td><a href="">删除</a></td>
         </tr>
        </table>
        </s:form>
    怎样获得用户全选的checkbox的值然后提交到action去?是不是要在form里定义什么,请大家指点一下非常感谢。