目录
一:分页查询(查)
二:删除操作
三:逻辑删除
一:分页查询(查)
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的字段,查询的时候会自动过滤被逻辑删除的字段)