CN112035724A - 一种实现树管理不受层级限制的方法 - Google Patents
一种实现树管理不受层级限制的方法 Download PDFInfo
- Publication number
- CN112035724A CN112035724A CN202010903690.7A CN202010903690A CN112035724A CN 112035724 A CN112035724 A CN 112035724A CN 202010903690 A CN202010903690 A CN 202010903690A CN 112035724 A CN112035724 A CN 112035724A
- Authority
- CN
- China
- Prior art keywords
- node
- java
- tree
- nodes
- query
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 240000008168 Ficus benjamina Species 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 230000008520 organization Effects 0.000 abstract description 11
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种实现树管理不受层级限制的方法,属于信息技术领域,首先根据所用前端插件封装对应的java树对象,然后通过前端操作,将根节点以及相应的叶子节点信息存入数据库中,可无限增加叶子节点的层级。本方法支持所有树形呈现,满足各种业务系统对组织架构的需求。
Description
技术领域
本发明涉及信息技术,尤其涉及一种实现树管理不受层级限制的方法。
背景技术
近几年随着企业政府业务的发展,B/S系统越来越复杂,但都绕不开组织架构这个功能。每次上线一个新的业务系统,都会按照组织架构进行权限的分配,那么树形架构在这里起了举足轻重的作用。由于技术层面的限制,大都会对树形的组织架构限定深度,以便能够简单的实现同时满足业务的需求。但是随着业务的不断推进,固有层级的组织架构满足不了当前的需求,那么只有手动增加代码来支撑业务需要。因为层级的固化和业务的堆积,通过增加代码实现层级的加深会有意向不到的困难和工作量。
随着云应用的兴起,政务云已经主导了业务系统的运行环境。业务系统必然会涉及到权限的分配,那么组织架构是必须要的。树形的组织架构简单易懂,一目了然。组织架构在开发初期,面临着选择前端插件和后端数据库的设计。还要考虑树形层级的问题,加上联调测试,开发周期比较长。
发明内容
为了解决以上技术问题,本发明提供了一种实现树管理不受层级限制的方法,能够迅速的构建树形架构,而且不受组织架构深度的限制,满足当前业务系统的需求。
本发明的技术方案是:
一种实现树管理不受层级限制的方法,首先根据所用前端插件封装对应的java树对象,然后通过前端操作,将根节点以及相应的叶子节点信息存入数据库中,可无限增加叶子节点的层级。当然,一般5个层级内可满足业务需求。
在调用查询的方法的时候,先通过数据库查询出所有节点,然后通过递归算法进行层级封装,返回给前台呈现。
进一步的,
通过前端树形插件的映射,封装对应的java节点对象,当前端进行树操作的时候,通过后端java对象存入数据库表。
前端属性插件节点必须有层级的区分,对应的java对象也必须有层级的标志。否则,进行前端遍历的时候,树形结构无法展示。
进一步的,
根据前端节点的数据结构,后端java对应的树对象,构造一个数据表,用来存储节点信息,其中包括了节点名字、父节点信息、层级信息等。
通过前端页面对树形结构进行操作,例如增加节点、删除节点、增加子节点等操作,然后通过后端java对象存入后端数据库表中,以备展现使用。
进一步的,
在java的架构中,用递归算法进行对数据库表进行查询。具体实现方式为将根节点作为查询条件,首次传入进行查询。查询出的子节点再次当做查询条件进行查询,如此往复。终止查询的条件就是子节点查询的子节点为空,也就是说已经查询到最低层的叶子节点。
java后端通过递归算法完成了查询之后,封装为LIST对象传入前端。前端插件根据内部实现对后端传入的数据进行遍历呈现,同时使用了ajax技术,树形结构使用户感知不到页面刷新的情况下,展示最新内容。
本发明的有益效果是
可以优化企业项目中的组织架构功能,可以对刚成立的项目需要进行组织架构研发的进行指导。借助前端的任何树形插件进行树的呈现和相关业务操作,不用考虑树形结构的层级问题,这对项目以后业务扩展是无后顾之忧的。在java代码中可以直接进行复用。当然,掌握住递归算法的终止条件和查询条件,可以基于任何编程语言进行实现。这展现了此类方法的易用性。
附图说明
图1是本发明的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明解决了项目中出现组织架构树的时候,层级的深度会收到限制的情况。比如一个公司的组织架构可能随时会有变化的情况,传统做法是限制了层级深度为三,如果出现了第四层级,则需要进行代码的重构或者手动进行层级变量的修改。本发明杜绝了此类情况的发生,可以适应任何组织架构的深度和调整。
在现代存有的web管理项目中,往往需要跟随一套组织架构,进行项目中权限的管理。首先基于java web的项目中,选定组织架构展现的前端插件,这里以z-tree为例。然后根据z-tree节点的规则,在java代码中,通过java对象进行节点的封装,并建立对应的数据库表。项目初始化进根节点,用户可以通过界面进行增加、删除同层节点以及子节点的操作。操作的数据被记录进数据库表中。Java后端通过递归算法,将所有节点按层级查出,提供给前端进行展示,这样就完成了项目中组织架构的管理。通过组织架构表的扩展,可以进行项目功能的权限管理。
本发明具体步骤为:
步骤1:首先基于现有的云研发环境,后台框架是基于spring boot的java web项目。选定前台树形结构的呈现插件为z-tree。
步骤2:根据z-tree插件的数据结构,对应后台建立起一对一的字段,并封装成相应的java对象。用来和前端的呈现进行交互。
a.封装叶子节点,对应数据库字段
步骤3:根据java对象构建后台数据库表,表中的字段对应树形结构,包含了节点编号、父节点、子节点、所在的层级等信息,用于将前台操作树形结构的信息存入表中,比如增加同级节点或者增加子节点。
步骤4:后端项目中构建树节点的添加、删除、查询等方法,放在controller层,作为前端调用的接口。
步骤5:树形查询方法是这样实现的,将节点的主键作为查询条件,查出此节点的所有子节点。查出的子节点也作为查询条件再次传入,查出子节点的所有子节点,如此往复。终止查询的条件就是子节点查询的子节点为空,也就是说已经查询到最低层的叶子节点。这样的话就退出了当前的递归循环,将查询的出的数据放入容器LIST中,返回给前端页面。以下为代码实现:
b.递归查询所有的树形节点
步骤6:前端页面接收了后端封装好的树形节点信息,根据z-tree的内部机制,将取出所查出的节点信息进行呈现。
步骤7:当在前端页面点击每个节点的时候,右侧会出现当前节点的信息,并且会出现增加、删除按钮。当点击增加按钮的时候,会出现添加页面,页面会自动将父节点的信息填入,并留出当前节点的名称、层级等信息,让用户去添加。
步骤8:填完当前节点信息,点击完成按钮后,节点信息会传入后台数据库。当前树形结构会采用ajax的方式进行刷新。采用这种方式,用户不会感知到页面刷新,但树形结构会刷新出刚添加的节点。同理,删除操作也是如此过程。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种实现树管理不受层级限制的方法,其特征在于,
首先根据所用前端插件封装对应的java树对象,然后通过前端操作,将根节点以及相应的叶子节点信息存入数据库中,可无限增加叶子节点的层级。
2.根据权利要求1所述的方法,其特征在于,
在调用查询的方法的时候,先通过数据库查询出所有节点,然后通过递归算法进行层级封装,返回给前台呈现。
3.根据权利要求1或2所述的方法,其特征在于,
通过前端树形插件的映射,封装对应的java节点对象,当前端进行树操作的时候,通过后端java对象存入数据库表。
4.根据权利要求3所述的方法,其特征在于,
前端属性插件节点必须有层级的区分,对应的java对象也必须有层级的标志。
5.根据权利要求3所述的方法,其特征在于,
根据前端节点的数据结构,后端java对应的树对象,构造一个数据表,用来存储节点信息,其中包括了节点名字、父节点信息、层级信息。
6.根据权利要求3所述的方法,其特征在于,
在java的架构中,用递归算法进行对数据库表进行查询:将根节点作为查询条件,首次传入进行查询;查询出的子节点再次当做查询条件进行查询,如此往复。
7.根据权利要求6所述的方法,其特征在于,
终止查询的条件是子节点查询的子节点为空,也就是说已经查询到最低层的叶子节点。
8.根据权利6或7的要求,其特征是,
java后端通过递归算法完成查询之后,封装为LIST对象传入前端;前端插件根据内部实现对后端传入的数据进行遍历呈现,同时使用ajax技术,树形结构使用户感知不到页面刷新的情况下,展示最新内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010903690.7A CN112035724A (zh) | 2020-09-01 | 2020-09-01 | 一种实现树管理不受层级限制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010903690.7A CN112035724A (zh) | 2020-09-01 | 2020-09-01 | 一种实现树管理不受层级限制的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112035724A true CN112035724A (zh) | 2020-12-04 |
Family
ID=73591904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010903690.7A Pending CN112035724A (zh) | 2020-09-01 | 2020-09-01 | 一种实现树管理不受层级限制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035724A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948503A (zh) * | 2021-03-30 | 2021-06-11 | 北京环境特性研究所 | 一种目标特性树形结构图形渲染方法和装置 |
CN113792030A (zh) * | 2021-09-23 | 2021-12-14 | 重庆标能瑞源储能技术研究院有限公司 | 一种应用于大数据平台的设备虚拟结构管理方法 |
-
2020
- 2020-09-01 CN CN202010903690.7A patent/CN112035724A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948503A (zh) * | 2021-03-30 | 2021-06-11 | 北京环境特性研究所 | 一种目标特性树形结构图形渲染方法和装置 |
CN113792030A (zh) * | 2021-09-23 | 2021-12-14 | 重庆标能瑞源储能技术研究院有限公司 | 一种应用于大数据平台的设备虚拟结构管理方法 |
CN113792030B (zh) * | 2021-09-23 | 2023-11-24 | 重庆标能瑞源储能技术研究院有限公司 | 一种应用于大数据平台的设备虚拟结构管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10783213B2 (en) | Flexible graph system for accessing organization information | |
CN109669983B (zh) | 可视化多数据源etl工具 | |
US7146375B2 (en) | Inference control method in a data cube | |
US6907433B2 (en) | System and method for managing object to relational one-to-many mapping | |
US8700560B2 (en) | Populating a multi-relational enterprise social network with disparate source data | |
US20230362251A1 (en) | Method and apparatus for managing iot device, and server and storage medium thereof | |
US8255368B2 (en) | Apparatus and method for positioning user-created data in OLAP data sources | |
CN112035724A (zh) | 一种实现树管理不受层级限制的方法 | |
CN108595604B (zh) | 一种智能报表的数据可视化系统及方法 | |
CN109213820B (zh) | 一种实现多种类型的数据库融合使用的方法 | |
CN112559704A (zh) | 一种用户自定义配置的知识图谱生成工具 | |
US20130036143A1 (en) | Method and Device for Data Storage | |
US20150331928A1 (en) | User-created members positioning for olap databases | |
CN111427865A (zh) | 一种管理数据库的对象的方法和装置 | |
CN115329504A (zh) | 一种基于复杂产品结构的bom构建方法 | |
CN113609257A (zh) | 一种金融知识图谱弹性框架构建方法 | |
CN111090803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
US20040054640A1 (en) | Interaction between a client process and software applications | |
CN114528270A (zh) | 云环境下实时流数据与业务维度信息自动关联系统及方法 | |
JP2017521759A (ja) | バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法、コンピュータ・プログラム、および装置 | |
CN109471904B (zh) | 一种用于组织标签的方法和系统 | |
CN113868253B (zh) | 一种数据关系捕获及大数据关系树构建方法 | |
CN101431429B (zh) | 一种设备中物理实体信息管理方法及设备与设备管理端 | |
CN112860725A (zh) | Sql自动生成方法和装置、存储介质及电子设备 | |
CN113592417A (zh) | 一种基于物联网的资产管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |