TreeHelp 无限下钻树生成及查询

2024-09-01 21:58

本文主要是介绍TreeHelp 无限下钻树生成及查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TreeHelp 无限下钻树生成及查询

===============

安装环境

  • jdk版本:1.8+
  • mybatis plus:3.4.1
  • fastjson:1.2.75
  • 其他具体依赖包见pom.xml

结构说明

1.    包demo为测试代码,主要演示树节点生成及树列表查询的工具类使用方式
2.    包treehelp为树生成及查询工具类包,demo包下的操作均基于此包完成,为通用实现
3.    TreeNodeVo用于数据展示的VO,TreeEntity为用于数据库操作的实体,demo中具体数据库表所用到的VO和ENTITY均分别继承这两个文件
4.	  接口TreeCodeGenerate默认实现可查询和生成TREE_CODE、TREE_LEVEL、SORT这三个字段的方法,为泛型类,demo包的数据库表对应的Mapper继承这个类
5.	  GenerateTreeUtil提供将查询列表转为父子结构树的方法和生成TREE_CODE的实现

GenerateTreeUtil类说明

1.getNextCode/*** @author: wc* @description: 方法说明:*                 1、根节点生成*                    1) 库中没有任何节点 传参 code = null,生成第一个节点A01*                 2、子节点生成*                    1) getNextCode(code,2); code为父节点 如传入A01 生成A01A01*                 3、同级下一个节点生成*                    1) getNextCode(code,2,false); code 为同级最大节点 如A10 生成A11* @param: code 初始code* @param: numPlaceHolder 数字占位位数【父子之间的占位位数需相同,否则生成错误】* @return: java.lang.String*/
2.generateTree/*** @author: wc* @description: 根据所传入的参数生成树型结构 使用方式:*                  一、所需生成树的vo extends TreeNodeVo (key、value、title、pid均需按实际情况设置)*                  二、传入树根节点和所需拼到树根下的节点list* @param: rootList 树根节点* @param: childrenList 树孩子节点* @param: isExpanded 是否展开* @return: java.util.List<TreeNodeVo> 返回树结构列表*/

功能介绍

1.1 树生成

树生成包括树结构生成节点添加方法 关键在于生成TREE_CODE、TREE_LEVEL、SORT,三个字段配合使用可增加查询子节点的效率
节点字段说明见下
  • 生成树的TREE_CODE,生成节点的TREE_LEVEL表示此根级别,SORT 表示生成树的本级别内的排序
  •             TREE_CODE          TREE_LEVEL   SORT
    
  •              A01					  1		    1
    
  •               --A0101			      2         1
    
  •               --A0102			      2		    2
    
  •              A02					  1		    2
    
  •               --A0201			      2         1
    
  •               --A0202			      2         2
    
  •                --A020201			  3         1
    
  •              ...					  ...      ...
    
    调用generateCode只要传参正确便可生成此结构的内容

版本

  • V1.0 更新时间:2021-06-20

版本库:

  • Git获取:https://github.com/wangcongisqian/treeHelps.git

个人博客:

博客园:https://www.cnblogs.com/ladyM/
CSDN:https://blog.csdn.net/u013247068?spm=1001.2100.3001.5343

免费使用

1.0版本属于初级版本,只做了基础功能,由于本人能力有限,在实现中不合理的地方欢迎大神批评指正,同时在方法使用过程中有任何问题原因交流学习

这篇关于TreeHelp 无限下钻树生成及查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128158

相关文章

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

详解Java中如何使用JFreeChart生成甘特图

《详解Java中如何使用JFreeChart生成甘特图》甘特图是一种流行的项目管理工具,用于显示项目的进度和任务分配,在Java开发中,JFreeChart是一个强大的开源图表库,能够生成各种类型的图... 目录引言一、JFreeChart简介二、准备工作三、创建甘特图1. 定义数据集2. 创建甘特图3.

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核