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);
    }

        运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值