Mybatis 批量删除(网上很多不可行)以项目的实际例子讲解!

本文介绍如何在Spring MVC框架下,利用Mybatis和easyUI实现基于ID字符串的批量视频删除操作。通过JSP页面获取多选ID,然后通过Action层发送请求至Service层,最终调用DAO层进行SQL执行完成删除任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘自项目中的Mybatis的批量删除。项目框架spring MVC和Mybatis,另外还用了easyUI,希望对你有所帮助!

在网上查了很多次,改了好长时间才跑通,所以我一自己的例子粘过来,希望能节省大家的时间。

【JSP】
jsp中主要是向action中传递了一个id的字符串,并且是以逗号分隔的。(看不懂没关系)
            function deletevideo(){
                var rows = jQuery('#dg').datagrid('getChecked');
                if(rows.length==0){
                    alert("请至少选择一项");
                    return false;
                }
                var ids= [];
                for(var i=0;i<rows.length;i++){
                    ids.push(rows[i].vid);
                }
                var ids1 = ids.join(',');
                jQuery.messager.confirm('确认','确定要删除?',function(r){
                    if(r){
                        jQuery.post(
                            '<%=path %>/video/deletevideo.do',
                            {id:ids1},
                            function(data){
                                jQuery.messager.show({
                                 title: '提示',
                                 msg: '删除成功!',
                                 timeout: 2000,
                                 showType: 'slide'
                             });
                             jQuery('#dg').datagrid('reload');
                             jQuery('#dg').datagrid('clearSelections');
                            }
                        );
                    }
                });
            }
【action】   
action中用的是注解,接收字符串并未做处理 ,service调用删除的方法。
@RequestMapping(value="/deletevideo")
    @ResponseBody
    public String deletevideo(HttpServletRequest request){
        String ids = request.getParameter("id");
        System.out.println("====================="+ids);
        try {
        int i=service.deleteById(ids);
        if(i>=1){
            return "success";
        }
            
        } catch (Exception e) {
            e.printStackTrace();
        }
           return null;
    }
【service】
对字符串做了处理,为了dao层的使用。把字符串id放到集合中。
public int deleteById(String ids){
        String[] split = ids.split(",");
        List idList= new ArrayList();
        for(int i=0;i<split.length;i++){
            idList.add(Integer.parseInt(split[i]));
        }
        return dao.deleteById(idList);
    
    }
【dao】
用了<foreach>标签

主要是用foreach标签,它可以在SQL语句中进行迭代一个集合。

foreach元素的属性主要有 item,index,collection,open,separator,close。

item表示集合中每一个元素进行迭代时的别名,(这个就别改了)item="item" 和#{item}是对应的复制我的就行了

index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,(这个也别改,照写就行)

open表示该语句以什么开始,

separator表示在每次进行迭代之间以什么符号作为分隔 符,

close表示以什么结束,

collection="list"(这个也别改,照写就行)

在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的。

1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

2.如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array



<delete id="deleteById" parameterType="java.util.List">
    delete from tb_video where vid in
    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
    #{item}
    </foreach>
</delete>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值