文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MyBatis-Plus删除操作知识点总结

2023-09-03 10:21

关注

Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客  

Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客
MyBaits-Plus中@TableField和@TableId用法_心态还需努力呀的博客-CSDN博客

MyBatis-Plus中的更新操作(通过id更新和条件更新)_心态还需努力呀的博客-CSDN博客


目录

系列文章目录

前言

一、根据id删除

二、Map多条件删除

三、QueryWrapper多条件删除

四、id数组删除多条数据

总结


本次内容主要是MP中的删除操作的知识点,有通过id删除,通过条件删除(map删出,QueryWrapper删除)、批量删除。主要是MP中的删除函数的用法。虽说在以后的开发中一般不会轻易地删除数据,只是把数据进行标记后不显示到页面。但删除操作在我们的学习中还是要求掌握的,毕竟也不难,而且在我们的开发中也会去运用到。所以作为学习的我们还是很有必要掌握该知识点的~


先看deleteById方法的源码,需要传入一个参数id值,返回的是一个int,也就是删除条数。

int deleteById(Serializable id);

 直接调用deleteById方法,这里传入参数为6,表示要删除id为6的信息。根据返回的参数,>0则删除成功,打印数据查看是否还有id为6的信息。反之则删除失败。写测试案例,代码去下:

//根据id删除    //int deleteById(Serializable id);    @Test    public void testDeleteById() {        int result = this.userMapper.deleteById(6);        if(result>0){            testSelectList();            System.out.println("删除成功!");        }else {            System.out.println("删除失败!");        }    }

 查看运行结果:根据生成的sql代码可看出,传入的id作为删除条件。 并且执行成功删除1条数据。

查看源代码,需要定义一个map,键为表字段名,值为条件的值。返回值也是受影响的行数。

int deleteByMap(@Param("cm") Map columnMap);

下面我们写测试案例,首先要new一个hashmap,将要删除的条件放到map中(这里我们删除名字为赵六、邮箱为zhaoliu@itcast.cn的信息),然后执行该方法查看是否删除成功。 

@Test    public void testDeleteByMap() {        //删除条件的封装map        Map map=new HashMap<>();        map.put("user_name","赵六");        map.put("user_email","zhaoliu@itcast.cn");        //执行删除        int result = this.userMapper.deleteByMap(map);        if(result>0){            testSelectList();            System.out.println("删除成功!");        }else {            System.out.println("删除失败!");        }    }

结果如下图所示:通过生成的sql代码可看出删除多条件中是以and进行的连接

 查看源码,是delete方法,里面的条件要通过QueryWrapper进行封装返回值也是受影响的行数。

int delete(@Param("ew") Wrapper queryWrapper);

 使用QueryWrapper我们以前更新操作时讲解过,这里就直接用了哦~

首先可以在querWrapper里面设置删除的条件,但是需要知道表的字段名才可以设置。也就是下面代码的方法一。所以一般我们用方法二,也就是先new一个User对象,设置条件值即可。然后将user作为参数传给querWrapper。即可进行条件删除。

这里我们删除用户名为哈哈、邮箱为12433的用户信息。

//根据QueryWrapper多条件删除 ,条件之间是and关系    //int delete(@Param("ew") Wrapper queryWrapper);    @Test    public void testDelete() {        //方法一://        QueryWrapper wrapper=new QueryWrapper<>();//        wrapper.eq("user_name","哈哈")//                .eq("user_email","12433");        //方法二:        User user=new User();        user.setUserName("哈哈");        user.setUserEmail("12433");        //在new时将user设置进去        QueryWrapper wrapper=new QueryWrapper<>(user);        //执行删除        int result = this.userMapper.delete(wrapper);        if(result>0){            testSelectList();            System.out.println("删除成功!");        }else {            System.out.println("删除失败!");        }    }

 查看执行效果:

从下图也可看出多条件之间都是以AND进行的连接。删除成功~ 

 查看源码,该方法为deleteBatchIds(),需要传入一个id的集合,返回值也是受影响行数。

int deleteBatchIds(@Param("coll") Collection idList);

编写测试方法testDeleteBatchIds(),在集合中传入1,2。表名要删除id为1,id为2的用户信息。做到批量删除的效果。

//根据id的数组删除多条数据    //int deleteBatchIds(@Param("coll") Collection idList);    @Test    public void testDeleteBatchIds(){        //批量删除        int result = userMapper.deleteBatchIds(Arrays.asList(1, 2));        System.out.println("result=>"+result);    }

 查看执行效果图:

查看生成的sql代码,使用的是in关键字,查看表中user_id里有1,2的都删除。

所以执行的行数为2。


 

Mybatis-Plus中的删除操作知识点到这里就结束了,这些功能最常用的还是条件查询,会条件删除的话其他方法都可实现。所以说QueryWrapper必须要会用,而且它不管是修改操作、删除操作、查询操作都会用到。其他的方法大家多去掌握~不过别在开发过程中频繁地使用删除操作,数据都是要保留的,我们练习的话自己建个表可以多加试试,重在掌握知识点嘛~

来源地址:https://blog.csdn.net/weixin_52258054/article/details/128061539

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯