「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战」
前言
不知道大家在做项目的时候有没有接触到将平平无奇数据结合处理成有层次的数据呢,类似下面这样
或者 生活处处都有,我想大家都应该接触过的,下面直接看怎么实现,我会大概讲一下思路,当然也可以直接跳到最后去看代码实现的哈
follow me!go go go!
❗此篇文章也只是一个简单的学习记录,不详细的对代码进行讲解
😎实现思路😎
首先一般数据库的模型设计如下
sql脚本
1 | bash复制代码 |
我们观察一下,可以发现我们的关注重点在name、uuid、parent_uuid上面:
name:分类名称
uuid:UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。这里可以简单看作一个唯一标识码(类似于ID但不等于ID)
parent_uuid:子类的父类UUID,最高级规定为-1(这个可以自己定义,不会有相同的就好)
下面就是我创建的模拟数据
想要实现数形状结构,肯定要以某一属性来作为突破口,它就是parent_uuid,那么到底是如何实现的 来看具体代码
🧡完整代码🧡
只贴重点代码
首先使用了Mabatis-generator生成了通用后端代码,结构如下:
ProductController.class
1 | bash复制代码package com.csdn.caicai.test.modules.product.controller; |
IProductBiz.class
1 | bash复制代码package com.csdn.caicai.test.modules.product.biz; |
ProductBiz.class
1 | bash复制代码package com.csdn.caicai.test.modules.product.biz; |
ProductReq.class
1 | bash复制代码package com.csdn.caicai.test.modules.product.dto; |
ProductRsp.class
1 | bash复制代码package com.csdn.caicai.test.modules.product.dto; |
测试一下
可以看到,实现了我们的效果
😜总结-核心代码😜
上面罗里吧嗦,其实核心代码就是以下代码,亲们来试着理解一下,然后就可以在此基础上美化一下就好了:
ProductRsp、ProductReq 是实体类,可以自行替换里面的内容
1 | bash复制代码 private ProductRsp productConvert(ProductEntity e) { |
本文转载自: 掘金