日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

springboot+mybatis plus實現(xiàn)樹形結(jié)構(gòu)查詢

瀏覽:182日期:2023-02-24 10:29:50
目錄背景使用場景設(shè)計思路遞歸模型實現(xiàn)代碼注意事項總結(jié)背景

實際開發(fā)過程中經(jīng)常需要查詢節(jié)點樹,根據(jù)指定節(jié)點獲取子節(jié)點列表,以下記錄了獲取節(jié)點樹的操作,以備不時之需。

使用場景

可以用于系統(tǒng)部門組織機構(gòu)、商品分類、城市關(guān)系等帶有層級關(guān)系的數(shù)據(jù)結(jié)構(gòu);

設(shè)計思路遞歸模型

即根節(jié)點、枝干節(jié)點、葉子節(jié)點,數(shù)據(jù)模型如下:

id code name parent_code 1 10000 電腦 0 2 20000 手機 0 3 10001 聯(lián)想筆記本 10000 4 10002 惠普筆記本 10000 5 1000101 聯(lián)想拯救者 10001 6 1000102 聯(lián)想小新系列 10001

實現(xiàn)代碼

表結(jié)構(gòu)

CREATE TABLE `tree_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT ’主鍵ID’, `code` varchar(10) NOT NULL COMMENT ’編碼’, `name` varchar(20) NOT NULL COMMENT ’名稱’, `parent_code` varchar(10) NOT NULL COMMENT ’父級編碼’, PRIMARY KEY (`id`) USING BTREE) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=’樹形結(jié)構(gòu)測試表’;

表數(shù)據(jù)

INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES (’10000’, ’電腦’, ’0’);INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES (’10001’, ’聯(lián)想筆記本’, ’10000’);INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES (’10002’, ’惠普筆記本’, ’10000’);INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES (’1000101’, ’聯(lián)想拯救者’, ’10001’);INSERT INTO `tree_table`(`code`, `name`, `parent_code`) VALUES (’1000102’, ’聯(lián)想小新系列’, ’10001’);

實體

@Data@TableName('tree_table')@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)public class TreeTable {​ /** * 主鍵ID */ @TableId(type = IdType.AUTO) private Integer id; /** * 編碼 */ private String code; /** * 名稱 */ private String name; /** * 父級編碼 */ private String parentCode;​ /** * 子節(jié)點 */ @TableField(exist = false) private List<TreeTable> childNode;}

mybatis

mapper

public interface TreeTableMapper extends BaseMapper<TreeTable> { /** * 獲取樹形結(jié)構(gòu)數(shù)據(jù) * * @return 樹形結(jié)構(gòu) */ public List<TreeTable> noteTree();}

xml

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd'><mapper namespace='com.springboot.example.mysqltree.mapper.TreeTableMapper'> <resultMap type='com.springboot.example.mysqltree.model.entity.TreeTable'><result column='id' property='id'/><result column='code' property='code'/><result column='name' property='name'/><result column='parent_code' property='parentCode'/> </resultMap> <resultMap type='com.springboot.example.mysqltree.model.entity.TreeTable' extends='BaseResultMap'><collection property='childNode' column='code' ofType='com.springboot.example.mysqltree.model.entity.TreeTable' javaType='java.util.ArrayList' select='nextNoteTree'>​</collection> </resultMap>​ <sql id='Base_Column_List'>id,code,`name`,parent_code </sql> <select resultMap='NodeTreeResult'>select<include refid='Base_Column_List'/>from tree_tablewhere parent_code=#[code] </select> <select resultMap='NodeTreeResult'>select<include refid='Base_Column_List'/>from tree_tablewhere parent_code=’0’ </select></mapper> noteTree :獲取所有父級節(jié)點數(shù)據(jù); nextNoteTree:循環(huán)獲取子節(jié)點數(shù)據(jù),知道葉子節(jié)點結(jié)束; column:關(guān)聯(lián)表的列名; ofType:返回類型

啟動類

@Slf4j@Componentpublic class TreeTableCommandLineRunner implements CommandLineRunner { @Resource private TreeTableMapper treeTableMapper;​ @Override public void run(String... args) throws Exception {log.info(JSONUtil.toJsonPrettyStr(treeTableMapper.noteTree())); }}

最終效果

[ {'code': '10000','childNode': [ {'code': '10001','childNode': [ {'code': '1000101','childNode': [],'parentCode': '10001','name': '聯(lián)想拯救者','id': 5 }, {'code': '1000102','childNode': [],'parentCode': '10001','name': '聯(lián)想小新系列','id': 6 }],'parentCode': '10000','name': '聯(lián)想筆記本','id': 3 }, {'code': '10002','childNode': [],'parentCode': '10000','name': '惠普筆記本','id': 4 }],'parentCode': '0','name': '電腦','id': 1 }]注意事項

使用mybatis時如加載不到mapper xml需在pom.xml添加以下配置:

<resources> <resource><directory>src/main/resources</directory><filtering>true</filtering> </resource> <resource><directory>src/main/java</directory><includes> <include>**/*.xml</include></includes> </resource></resources>總結(jié)

使用遞歸方式是比較常見的方式,優(yōu)點是實現(xiàn)簡單,直觀的體現(xiàn)層級關(guān)系,但是數(shù)據(jù)量大的情況下效率會略低;歡迎使用其他方式的小伙伴分享自己的實現(xiàn)思路。

到此這篇關(guān)于springboot+mybatis plus實現(xiàn)樹形結(jié)構(gòu)查詢的文章就介紹到這了,更多相關(guān)springboot 樹形結(jié)構(gòu)查詢內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
999久久久国产精品| 国产精品久久久久蜜臀| 国产另类在线| 日韩毛片网站| 日本一不卡视频| 18国产精品| 美女久久99| 日本欧美不卡| 99久久九九| 国产精品嫩草99av在线| 免费久久精品视频| 奇米狠狠一区二区三区| 久久精品理论片| 日韩精品欧美| 亚洲婷婷丁香| 精品国产91| 激情婷婷综合| 久久av一区二区三区| 91九色综合| 国产白浆在线免费观看| 久久亚洲精品中文字幕蜜潮电影| 亚洲激情社区| 国产日产精品_国产精品毛片 | 午夜欧美精品| 日韩精品国产精品| 91日韩欧美| 免费日本视频一区| 国产探花一区在线观看| 日韩不卡免费高清视频| 亚洲精品九九| 日韩国产欧美一区二区| 视频一区二区三区入口| 国产精品一区高清| 欧美日韩国产传媒| 国产精品a级| 亚洲精品1区| 国产精品国产三级在线观看| 日韩精品影视| 青草av.久久免费一区| 中文字幕系列一区| 国产欧美日韩影院| 欧美日韩国产探花| 亚洲专区视频| 久久久久久免费视频| 日本欧美久久久久免费播放网| 欧美日韩国产观看视频| 日韩精品免费观看视频| 国产91一区| 精品一区91| 日本在线观看不卡视频| 久久激情网站| 国产精品羞羞答答在线观看| 国模 一区 二区 三区| 久久av影视| 亚洲免费福利一区| 精品在线播放| 国产激情在线播放| 日韩精品导航| 亚洲欧美网站| 香蕉精品久久| 精品亚洲自拍| 国产精品一站二站| 亚洲精品少妇| 国产精品婷婷| 激情五月色综合国产精品| 国模精品一区| 国产经典一区| 国产精品一级在线观看| 中文字幕乱码亚洲无线精品一区| 另类中文字幕国产精品| 超级白嫩亚洲国产第一| 欧美亚洲免费| 久色成人在线| 91精品二区| 久久婷婷亚洲| 欧美精品高清| 超碰99在线| 国产va免费精品观看精品视频| 国产亚洲人成a在线v网站| 日韩天堂av| 免费欧美一区| 午夜av一区| 中文在线不卡| 久久不射网站| 久久性天堂网| 蜜桃一区二区三区在线| 日韩视频一区二区三区在线播放免费观看| 电影91久久久| 久久久久久婷| 日韩伦理在线一区| 亚洲涩涩在线| 91精品国产成人观看| 欧美日韩免费观看视频| 人人精品亚洲| 欧美午夜不卡影院在线观看完整版免费| 久久亚洲成人| 性色一区二区| 亚洲va久久| 国产欧美日韩免费观看| 欧美久久香蕉| 精品一区视频| av综合电影网站| 欧美成人基地 | 国产精品久久久久久久久妇女| 蜜桃精品视频| 激情国产在线| 一区二区三区四区日本视频| 91欧美日韩| 久久影院一区| 日韩中文欧美在线| 69堂精品视频在线播放| 久久精品一区二区三区中文字幕| 久久在线91| 99成人在线视频| 国产亚洲精品v| 日韩高清二区| 97精品国产福利一区二区三区| 国产专区一区| 日韩精品中文字幕一区二区| 里番精品3d一二三区| 亚洲成人国产| 少妇高潮一区二区三区99| 日韩av一区二区在线影视| 久久不见久久见国语| 日韩综合精品| 亚洲视频电影在线| 麻豆国产一区| 欧美+亚洲+精品+三区| 综合视频一区| 精品国产精品久久一区免费式 | 国产成人a视频高清在线观看| 99热精品久久| 日本伊人午夜精品| 涩涩av在线| 一区二区三区国产在线| 国产精品一区二区三区av麻| 91精品亚洲| 欧美一区网站| 久久青草久久| 日韩精品一区二区三区中文 | 亚洲精品黄色| 国产福利电影在线播放| 亚洲欧美久久久| 精品欧美日韩精品| 亚洲图片久久| 日韩欧美视频专区| 日韩中文字幕一区二区高清99| 国产一区二区三区网| 亚洲深夜av| 开心激情综合| 亚洲婷婷丁香| 久久久久久久久99精品大| 日韩三级精品| 99精品在线免费在线观看| 日韩av黄色在线| 亚洲特色特黄| 精品国产亚洲一区二区在线观看| 亚洲视频www| bbw在线视频| 欧美色综合网| 亚洲黄色影院| 中文在线免费视频| 欧美日韩xxxx| 免费观看久久久4p| 日韩成人亚洲| 免费日韩一区二区三区| 午夜亚洲福利在线老司机| 久久久久免费| 国产精品久一| 亚洲免费高清| 成人小电影网站| 国产精品亚洲综合在线观看| 日韩一区精品字幕| 久久九九国产| 国产精品99视频| 日韩av午夜在线观看| 亚洲综合电影一区二区三区| av在线最新| 你懂的网址国产 欧美| 日本一不卡视频| 蜜桃久久久久久久| 影音先锋国产精品| 美女毛片一区二区三区四区| 美女av在线免费看| 久久一区欧美| 久久国产尿小便嘘嘘| 亚洲精品欧美| 中文欧美日韩| 亚洲在线一区| 亚洲精品一区二区在线看| 国产一区丝袜| 美日韩一区二区三区| 国产欧美69| 国产欧美日韩精品高清二区综合区| 亚洲有吗中文字幕| 视频一区免费在线观看| 香蕉久久国产| 亚洲婷婷丁香| 日韩欧美四区| 欧美亚洲免费|