目录
一:分页查询(查)
1.原始的limit进行分页。
2.pageHelper 第三方插件。
3.mybatis_Plus也内置了分页插件。
怎么用?官网有文档
1.配置拦截器组件即可。
//分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
2.直接使用Page对象即可。
//测试分页查询
@Test
public 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.基本的删除操作
//测试删除
@Test
public void testDeleteById(){
userMapper.deleteById(1432251774659461123L);
}
//通过id批量删除
@Test
public void testDeleteBatchId(){
userMapper.deleteBatchIds(Arrays.asList(1432251774659461121L,1432251774659461122L));
}
//通过map删除
@Test
public 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.配置
//逻辑删除组件
@Bean
public 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的字段,查询的时候会自动过滤被逻辑删除的字段)