当前位置: 首页 > news >正文

JavaWeb学习--MyBatis-Plus整合SpringBoot的ServiceImpl方法(增加,修改与删除部分)

        接下来是常用的增加,修改以及删除部分

        首先是增加部分,增加一个新的数据

 @Test
    public void testInsert() {
        // 添加一个新用户记录
        Student s = new Student();
        s.setName("NewStudent");
        s.setAge(25);
        boolean saved = studentService.save(s);
        //可以根据saved来进行后续处理,添加成功则saved=true,反之为false
    }

        然后是批量添加数据:

   @Test
    public void testSaveBatch() {
        // 批量插入多个数据
        ArrayList<Student> students = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            Student student = new Student();
            student.setName("Student" + i);
            student.setAge(20 + i);
            students.add(student);
        }
        boolean saved = studentService.saveBatch(students);
        //可以根据saved来进行后续处理,添加成功则saved=true,反之为false
    }

        通常情况下,以上2种的添加方式可以满足大部分的需求,然后是修改部分:

        

  @Test
    public void testUpdateById() {
        // 根据ID更新用户记录
        Student s = new Student();
        s.setId(1L);
        s.setAge(18);
        boolean updated = studentService.updateById(s);
        //后续可以根据updated 进行一些别的处理,true为修改成功,false为修改失败
    }

        运行结果如下:

然后是自定义条件修改数据

 @Test
    public void testUpdate() {
        // 自定义条件修改数据
        QueryWrapper<Student> queryWrapper = new QueryWrapper<>();//使用Wrapper记录条件
        queryWrapper.like("name", "折");//模糊查询
        queryWrapper.eq("sex", "女");
        Student s = new Student();
        s.setAge(17);
        boolean updated = studentService.update(s, queryWrapper);
    }

        运行结果如下:

        然后是根据id批量修改:

 @Test
    public void testUpdateBatchById() {
        // 根据id批量修改用户记录
        List<Student> ss = new ArrayList<>();
        for (int i = 23; i <= 27; i++) {
            Student s = new Student();
            s.setId((long) i);
            s.setName("NewStudent" + i);
            s.setAge(30 + i);
            ss.add(s);
        }
        boolean updated = studentService.updateBatchById(ss);
    }

        运行结果如下:        然后是修改或者添加数据

   @Test
    public void testSaveOrUpdate() {
        // 更新数据,如果没有这个数据,则改为添加
        Student s = new Student();
        s.setId(12L);
        s.setAge(40);
        boolean savedOrUpdate = studentService.saveOrUpdate(s);
    }

        运行结果如下:

        没有数据时

        有数据时:

        在上面的基础上,增加判断条件部分:


    @Test
    public void testSaveOrUpdateWithWrapper() {
        // 更新或插入用户记录
        Student s = new Student();
        s.setId(11L);
        s.setName("澪");
        s.setAge(55);
        QueryWrapper<Student> updateWrapper = new QueryWrapper<>();//用于修改用户时判断
        updateWrapper.eq("name", "澪");
        boolean savedOrUpdate = studentService.saveOrUpdate(s, updateWrapper);
    }

        没有数据时:

        有数据时:

        最后是删除部分

        首先是根据id删除:

    @Test
    public void testRemoveById() {
        // 根据ID删除一个用户记录
        boolean removed = studentService.removeById(12L);
    }

运行代码如下:

        由于案例开启了逻辑删除,所以这里采用的是逻辑删除的方式,如果没有开启逻辑删除,则会在数据库中删除这个数据

        然后是使用实体类的id删除

 @Test
    public void testRemoveByIdWithEntity() {
        // 根据实体对象删除一个用户记录
        Student s = new Student();
        s.setId(13L);
        s.setAge(11);
        boolean removed = studentService.removeById(s);
        assertTrue(removed);
    }

结果如下

        可以看到,这个只能根据实体类的id删除,而不能根据其内部的其他数据来删除,而使用map和Wrapper可以实现根据条件删除:

        首先是map:

  @Test
    public void testRemoveByMap() {
        // 根据条件删除用户记录
        Map<String, Object> Map = new HashMap<>();
        Map.put("age", "111");
        boolean removed = studentService.removeByMap(Map);
    }

        运行结果如下:

        接下来是Wrapper

 @Test
    public void testRemoveByWrapper() {
        // 根据条件删除用户记录
        QueryWrapper<Student> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("age", "22");
        queryWrapper.like("name", "1");//模糊查询
        boolean removed = studentService.remove(queryWrapper);
    }

        结果如下:

        最后是批量删除:

  @Test
    public void testRemoveByIds() {
        // 根据ID列表批量删除用户记录
        List<Long> ids = Arrays.asList(21L, 20L);
        boolean removed = studentService.removeByIds(ids);
    }

        运行结果如下:

http://www.dtcms.com/a/111180.html

相关文章:

  • 深入解析:使用Python爬取Bilibili视频
  • 如何用DeepSeek进行SWOT分析?以CSDN的“C知道”为例
  • k8s的StorageClass存储类和pv、pvc、provisioner、物理存储的链路
  • 做一个Andriod系统应用的方法
  • 软件设计师之设计模式
  • 第七章 Python基础进阶-异常、模块与包(其五)
  • 手撕AVL树
  • 模运算核心性质与算法应用:从数学原理到编程实践
  • Julia语言的测试覆盖率
  • 卷积神经网络CNN 经典模型 — GoogleLeNet、ResNet、DenseNet算法原理与模型构造
  • Visual Basic语言的网络协议栈
  • AIGC时代Kubernetes企业级云原生运维实战:智能重构与深度实践指南
  • SpringAI整合Ollama集成DeepSeek
  • 搜索树——AVL、红黑树、B树、B+树
  • WinForm真入门(5)——控件的基类Control
  • 使用 Swift 实现 LRU 缓存淘汰策略
  • React编程模型:Project Reactor深度解析
  • Java的基本语法
  • 006贪心——算法备赛
  • 蓝桥杯 2023 省赛 B 组 E 题。
  • KubeVirt虚拟化管理架构
  • 热更新简介+xLua基础调用
  • 《AI大模型开发笔记》MCP快速入门实战(一)
  • 英语学习:读科技论文的难处
  • JSON介绍
  • 免费送源码:Java+ssm+MySQL SpringBoot社区配送服务系统小程序 计算机毕业设计原创定制
  • OpenMinus 源码深度解析:从 React 模式到多智能体架构实现
  • 元宇宙浪潮下,前端开发如何“乘风破浪”?
  • OCR的备份与恢复
  • Nacos 如何管理配置版本?支持配置回滚吗?如何实现?