mysql如何实现树状结构数据列表
生活随笔
收集整理的這篇文章主要介紹了
mysql如何实现树状结构数据列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.數據庫設計
CREATE TABLE `expense_type` (`ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '費用類型唯一主鍵ID',`NAME` varchar(100) DEFAULT NULL COMMENT '費用類型名稱',`PID` int(11) DEFAULT NULL,`IS_DEL` varchar(20) DEFAULT '0' COMMENT '0為未刪除,1為已刪除,默認為0',PRIMARY KEY (`ID`) USING BTREE,KEY `isDel` (`IS_DEL`) USING BTREE COMMENT '假刪除字段索引' ) ENGINE=InnoDB AUTO_INCREMENT=92 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;2.service層代碼
@Overridepublic RestResponse getAllExpenseType() {List<ExpenseType> expenseTypes = expenseTypeMapper.selectList();//查詢此表的所有數據sql即可expenseTypes = generateTree(expenseTypes);return RestResponse.success(expenseTypes);}private List<ExpenseType> generateTree(List<ExpenseType> expenseTypeList) {List<ExpenseType> orgList = new ArrayList<>();for (ExpenseType sysMenu : expenseTypeList) {if (sysMenu.getPid() == null) {orgList.add(sysMenu);addSubs(sysMenu, expenseTypeList);}}return orgList;}private ExpenseType addSubs(ExpenseType org, List<ExpenseType> list) {for (ExpenseType sysOrg : list) {if (org.getId().equals(sysOrg.getPid())) {org.getSubs().add(addSubs(sysOrg, list));}}return org;}3.查詢出來的結構即為樹狀結構(理論上無窮級數)
總結
以上是生活随笔為你收集整理的mysql如何实现树状结构数据列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 音频编解码G.711 G.729 G.7
- 下一篇: Redis核心技术与实战-学习笔记(十五