怎么使用mybatisPlus做分类的展示(后端和数据库的做法)

 

前端的做法是使用Ztree来做,感兴趣的同学可以自己试试。

先说我们最后给前端的是一个什么类型的值哈,例如说你这边做的是一个仓库(categories)的东西的分类,那么就是返回这个

List<Categories>这个东西

 

再看看数据库是怎么设计的。

 

 

然后怎么输入数据呢

例如说对于这个,你就先把 图书、音像、电子书刊,手机,家用电器输进来

 

然后转到第二层,电子书刊、音像、英文原版 它们是第二级的,输第二层的数据的时候,记得他们的parentid就是上面的id=1,然后level为2,依次类推,才不会混乱。

 

代码层面是这样做的

    @GetMapping
    public Resp<List<CategoryEntity>> queryCategoriesByPidOrLevle(@RequestParam(value="level",defaultValue = "0") Integer level ,
                                                                  @RequestParam(value="parentCid",required = false) Long pid){
        QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>();
        //判断分类的级别是否为0
        if (level != 0){
            wrapper.eq( "cat_level",level );
        }
        //判断父节点的id是否为空
        if (pid != null){
            wrapper.eq( "parent_id",pid );
        }
        List<CategoryEntity> categoryEntities = categoryService.list( wrapper );
        return Resp.ok( categoryEntities );
    }

 

前端申请的时候分别会要求一个level和parentcID  ,其中一个level给他默认值,另一个是给它设为不必填,因为用户不定是要查某一个父节点底下的所有节点,也有可能是查所有的节点。

关键就在于List这个方法做了什么,list方法继承了mybatisPlus的IService的接口,换言之,它就是MyBatisPlus提供的。

 

 

到对应的包的impl查看它的实现类咋们说

 

就是调用了baseMapper的 selectList方法。

 

结合mybatis中selectList的用法,不难判断这是一个多条件查询语句。

Wrapper里放进两个变量(其中一个是level=0),表示我们页面刚刚加载的时候仅需要最外面那一层的数据,返回一个List<Object>,然后当我们点开具体的某个层的时候,Ztree会把父节点的位置给对应上,此时,就会得到一个该父节点下所有子节点的页面,显示在页面上。这一点从我们的NetWork上可以看到。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值