mybatis-plus 查询+删除功能


查询

最简单例子
User user = userMapper.selectById(1L);
查询多个

List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
        users.forEach(System.out::println);

条件查询

@Test//条件查询 使用Map
    void test2(){
        HashMap<String,Object> map=new HashMap<>();
        //自定义查询
        map.put("name","Tom");
        map.put("age",28);
        List<User> users = userMapper.selectByMap(map);
        users.forEach(System.out::println);
    }

分页查询

注册组件

@Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }

测试功能

@Test
    void test3(){
        //测试分页查询
        Page<User> page = new Page<>(2,5);//5条记录为单位的第二页
        userMapper.selectPage(page,null);
        page.getRecords().forEach(System.out::println);
    }

结果只有一条ID为6的记录 符合情况

删除功能

几乎和查询一致
最简单方法
userMapper.deleteById(1L);
删除一系列
userMapper.deleteBatchIds(Arrays.asList(1,2,3));
条件删除
和查询一样

逻辑删除

逻辑删除指删除某一条数据时并没有真的删除它,而是通过一个变量值的状态让它失效

测试逻辑删除:
添加一个deleted字段 为1时表明被逻辑删除
实体类添加属性

@TableLogic//逻辑删除字段注解
    private Integer deleted;

配置application.yml(不配置也可以 按人家的默认值走)

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

测试删除

void test1(){
        userMapper.deleteById(1L);
    }

id1数据并没有删除 而是被标记为deleted=1


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM