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操作。

 
 素材来源地址:狂神说  https://www.bilibili.com/video/BV17E411N7KN?p=2

posted @ 2020-09-08 17:33  吃完肥皂吐泡泡  阅读(637)  评论(0)    收藏  举报