MyBatis-Plus快速入门(三)CRUD扩展(查询、删除)
查询操作
//测试通过id查询用户
@Test
public void selectById(){
SysUser sysUser = userMapper.selectById(1L);
System.out.println(sysUser);
}
//测试批量查询用户
@Test
public void selectUser(){
List<SysUser> sysUsers = userMapper.selectBatchIds(Arrays.asList(1,2,3));
sysUsers.forEach(System.out::println);
}
//测试按条件查询之一使用map操作
@Test
public void selectBatchUser(){
HashMap<String, Object> map = new HashMap<>();
map.put("username","admin6");
map.put("password","123456");
//自定义条件
List<SysUser> sysUsers = userMapper.selectByMap(map);
sysUsers.forEach(System.out::println);
}
分页查询
分页在网站使用十分之多!
1.原始的 limit 进行分页
2.pageHelper 第三方插件
3.MP 也有内置插件
如何使用!
1.配置拦截器
//分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
return paginationInterceptor;
}
2.直接使用page对象即可!
//测试按条件查询之一使用map操作
@Test
public void selectPageUser(){
//参数一:当前页
//参数二:页面条数
//使用分页插件后,分页也变得简单了
Page<SysUser> page = new Page<>(1,5);
userMapper.selectPage(page, null);
page.getRecords().forEach(System.out::println);
System.out.println(page.getTotal());//page.getTotal() 获取总条数
}
删除操作
//测试删除
//使用id删除
@Test
public void deleteById(){
userMapper.deleteById(1303151298474151937L);
}
//使用id批量删除
@Test
public void deleteBatchId(){
userMapper.deleteBatchIds(Arrays.asList( 1303151298474151937L,1303148873394733058L));
}
//使用map删除
@Test
public void deleteBatchMap(){
HashMap<String, Object> map = new HashMap<>();
map.put("username","admin6");
userMapper.deleteByMap(map);
}
以上都是基本的删除操作!
逻辑删除
在工作中,很多地方不需要真删除数据库数据,所以我们得逻辑删除!
物流删除:从数据库中真删,移除数据!
逻辑删除:在数据库中没有被移除,而是更改它的一个字段来让它失效!is_delete = 0 => is_delete = 1;
超级管理员才能查看,防止数据丢失,雷同于回收站;
测试一下
1.在数据表中添加一个 is_delete 字段 默认值为 0;

2.在实体类中添加新增字段
@TableLogic//逻辑删除注解
private Integer isDelete;
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.测试逻辑删除
//测试逻辑删除
//使用id删除
@Test
public void deleteById2(){
userMapper.deleteById(1303211966619484161L);
}
测试结果:

记录在数据库,但is_delete值已经更改

使用查询查看已经删除的数据

以上差不多就是所有的CRUD操作和其扩展类了,我们都得精通!能大大提高工作效率,不过复杂的CRUD最好还是使用mybatis进行编写,mybatis-plus还不能进行过于复杂的CRUD操作。

浙公网安备 33010602011771号