我是靠谱客的博主 冷艳大侠,最近开发中收集的这篇文章主要介绍requests 分类多级页面_实现多级分类嵌套数据的展示,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

其实之前已有文章写过类似的解决方案,SpringBoot 实现多级分类菜单,不过是基于项目实战内容来写,可能对阅读体验并不友好,这次我们一起从 0 走下来这个简单常用的业务开发。

首先可以看一下这个表结构。

假设我们的内容拥有

展示出来就是这样一个结构后端语言javaspring

python

运维技术linux

docker

接下来我们基于 SpringBoot + Mybatis 来完成这个业余。

我将展示 xml 和 Java代码 两种方式。

实体类

我们要对他进行封装成带有下一级的实体Vo

我新建了一个 LevelCatalogVo 在 LevelCatalog 原有的基础上加上了 List 属性

接下来我们去写这个 APi 接口

我们去 Service 层中写具体的逻辑实现了。

这个是主要方法:查询出所有的内容,然后通过代码我们一一来封装成对象,这样我们对MySQL的查询只有一次。public List info() {

//取出所有的内容

List levelCatalogs = baseMapper.selectList(null);

//创建一个需要返回的vo展示集合对象

List levelCatalogVos = new ArrayList<>();

//所有内容进行遍历

for (LevelCatalog levelCatalog : levelCatalogs) {

//找出一级分类,赋值到vo类,加入到集合中去

if (levelCatalog.getParentId() == 0){

LevelCatalogVo levelCatalogVo = new LevelCatalogVo();

BeanUtils.copyProperties(levelCatalog,levelCatalogVo);

//为一级分类设置子分类

levelCatalogVo.setChildren(getChildrens(levelCatalogVo,levelCatalogs));

levelCatalogVos.add(levelCatalogVo);

}

}

return levelCatalogVos;

}private List getChildrens(LevelCatalogVo root, List levelCatalogs) {

//由于子分类下可能还有子分类,因此依旧需要创建一个需要返回的vo展示集合对象

List levelCatalogVos = new ArrayList<>();

//依旧将所有内容进行遍历

for (LevelCatalog levelCatalog : levelCatalogs) {

//取出相应子类,加到集合中并返回

if (root.getId().equals(levelCatalog.getParentId())){

LevelCatalogVo levelCatalogVo = new LevelCatalogVo();

BeanUtils.copyProperties(levelCatalog,levelCatalogVo);

//使用递归,循序渐进式设置完各大小级分类

levelCatalogVo.setChildren(getChildrens(levelCatalogVo,levelCatalogs));

//最总加入到集合中去

levelCatalogVos.add(levelCatalogVo);

}

}

return levelCatalogVos;

}

完成 controller 层调用后,访问得到的信息正如我们所需。

Mybatis xml 的方式

这种就简单的多了,Mybatis 会帮我们做好一切,但是他对Mysql的查询是多次的,而不是一次查完,因此数据量超大的情况下性能会大打折扣。

结果跟上面也是一模一样的。

ofType="com.xn2001.entity.LevelCatalogVo"

select="info2"/>

select id, name, parent_id from level_catalog where parent_id = #{parentId}

最后

以上就是冷艳大侠为你收集整理的requests 分类多级页面_实现多级分类嵌套数据的展示的全部内容,希望文章能够帮你解决requests 分类多级页面_实现多级分类嵌套数据的展示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部