欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > JavaWeb学习--MyBatis-Plus整合SpringBoot的ServiceImpl方法(增加,修改与删除部分)

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

2025/4/5 10:38:28 来源:https://blog.csdn.net/shouxifeiwu/article/details/146703533  浏览:    关键词:JavaWeb学习--MyBatis-Plus整合SpringBoot的ServiceImpl方法(增加,修改与删除部分)

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

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

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

        然后是批量添加数据:

   @Testpublic 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种的添加方式可以满足大部分的需求,然后是修改部分:

        

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

        运行结果如下:

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

 @Testpublic 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批量修改:

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

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

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

        运行结果如下:

        没有数据时

        有数据时:

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

@Testpublic 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删除:

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

运行代码如下:

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

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

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

结果如下

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

        首先是map:

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

        运行结果如下:

        接下来是Wrapper

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

        结果如下:

        最后是批量删除:

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

        运行结果如下:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词