将数据库读取的平级数据转换成父子孙结构
来源:互联网 发布:java gc机制 编辑:程序博客网 时间:2024/05/21 20:25
前几天写接口,需求是从保存系统中所有模块、页面、操作的数据库表中读取数据,然后形成父子孙结构,当时为了不多次读取数据库,想了一种方法,当时费了一下午才把接口写出来,不管是不是好的方法,先写出来mark一下。
1、需求就是加载数据库中所有的模块,页面,操作,并按照三级结构展示(若数据库中真的存在没有模块的页面,或者没有页面的操作,这些数据不加载出来)
2、实现过程就是:
首先,从数据库中读取所有的模块,left join获取所有模块下的页面,再left join 获取所有页面下的操作,基本形式为moduleUUID, moduleName,pageUUID,pageName,
operateUUID,operateName;
其次,
①先建立需要输出的对象,使用map结构(map1),key用moduleUUID,value为要输出的list的单个元素;
建立一个map(map2),key为page的uuid,value为该page下面所有的操作对象列表;
再建立一个map(map3),key为module的uuid,value为模块下页面的uuid列表,这个数据仅仅是为了在读取一条数据时判断页面是否已经包含在第一个map里面;
②遍历上面读取的记录,读取一条记录,若新的模块则初始化module并加入map1,然后若页面不为空且是新的页面(即map3中是否包含对应页面)就初始化page信
息并加入map中对应module的pageList;
page中的operateList只初始化为new ArrayList<>()即可;
若操作不为空,将操作加入到对应的页面下面(map2)
③遍历map1中的页面,将页面下的操作列表进行赋值(根据map2)
④遍历map1 ,形成list
阅读全文
0 0
- 将数据库读取的平级数据转换成父子孙结构
- js将有父子关系的数据转换成树形结构数据
- Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级
- Javascript--父子数据层次结构和平行结构的转换
- 关于Java语言的eclipse读取数据库,并将数据转换成JSON格式输出
- python自动将数据库表结构转换成markdown文档
- oracle层级数据库结构通过一级找最末级数据
- 数据库提取的无限级数据排序
- 数据库处理千万级数据的解决方案
- 将实体转换成具有相同结构的DataTable
- 将ORACLE数据库的表转换为C++类与结构体的想法及实现
- JavaScript将具有父子关系的原始数据格式化成树形结构数据
- java 将数据字典(父子结构)绑定成List集合
- java 将数据字典(父子结构)绑定成List集合(第二种写法)
- 将读取文本文件转换成list
- 使用Apache POI读取Excel文件,将读取的数据转换成json写入文本文件
- Orcal数据库的表结构转换成mysql数据库的表结构
- Orcal数据库的表结构转换成mysql数据库的表结构
- 用Kubernetes部署超级账本Fabric的区块链即服务(1)
- 赠书 | 超级账本Fabric 1.0多节点集群的部署(2)
- java.toString()和String.valueOf的区别
- 天天学Linux命令21--find命令之exec
- 【Java线程】锁机制:synchronized、Lock、Condition
- 将数据库读取的平级数据转换成父子孙结构
- H5移动端调用相机/相册
- mysql操作相关合集
- 【word2vec实例1】
- 金融科技:为何商业银行必须追随零售银行
- MySQL 常见的报错及解决方式
- DFINITY区块链连载(一) 密码学技术介绍
- DFINITY区块链连载(二)阈值组创建与区块生成
- 百练+链表相加+主要就是链表的操作