当前位置: 代码迷 >> 综合 >> Mybatis_plus(003)---接着CRUD
  详细解决方案

Mybatis_plus(003)---接着CRUD

热度:89   发布时间:2023-12-13 22:55:49.0

目录

一:分页查询(查)

二:删除操作

三:逻辑删除


一:分页查询(查)

1.原始的limit进行分页。

2.pageHelper 第三方插件。

3.mybatis_Plus也内置了分页插件。

怎么用?官网有文档

1.配置拦截器组件即可。

   //分页插件@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}

2.直接使用Page对象即可。

 //测试分页查询@Testpublic void testPage(){//参数一:当前页//参数二:页面数据量Page<User> page = new Page<>(1,5);userMapper.selectPage(page,null);page.getRecords().forEach(System.out::println);System.out.println(page.getTotal());}

3.看控制台输出:

二:删除操作

1.基本的删除操作

 //测试删除@Testpublic void testDeleteById(){userMapper.deleteById(1432251774659461123L);}//通过id批量删除@Testpublic void testDeleteBatchId(){userMapper.deleteBatchIds(Arrays.asList(1432251774659461121L,1432251774659461122L));}//通过map删除@Testpublic void testDeleteMap(){HashMap<String, Object> map = new HashMap<>();map.put("name","王五");userMapper.deleteByMap(map);}

 2.在工作中会遇到一些问题:逻辑删除

三:逻辑删除

物理删除:从数据库中直接移除

逻辑删除:在数据库中没有被移除,而是同构一个变量来让他失效!delete=0 => delete=1

管理员可以查看被删除的记录!防止数据的丢失,类似于回收站。

测试一下:

1.在数据库表中增加一个deleted字段。

 2.实体类中增加属性

    @TableLogic//逻辑删除private Integer deleted;

3.配置

    //逻辑删除组件@Beanpublic ISqlInjector sqlInjector(){return new LogicSqlInjector();}
#配置逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

4.测试一下删除!

这里看sql语句执行的是更新操作:

数据还在数据库,但是deleted字段的值变成了1。

 5.看被删除的数据是否还能查询出来:

不能了:看sql语句它会过滤deleted=1的字段,查询的时候会自动过滤被逻辑删除的字段

  相关解决方案