CN103455335A - 一种多级分类的Web实现方法 - Google Patents
一种多级分类的Web实现方法 Download PDFInfo
- Publication number
- CN103455335A CN103455335A CN2013104136720A CN201310413672A CN103455335A CN 103455335 A CN103455335 A CN 103455335A CN 2013104136720 A CN2013104136720 A CN 2013104136720A CN 201310413672 A CN201310413672 A CN 201310413672A CN 103455335 A CN103455335 A CN 103455335A
- Authority
- CN
- China
- Prior art keywords
- classification
- level
- user
- information
- data
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种多级分类的Web实现方法,主要利用Struts2、Spring以及Hibernate框架,Struts2用于表示层、Spring用于业务处理层、Hibernate用于数据访问层,采用tomcat作为Web服务器,mysql作为中心数据库,页面显示部分采用JavaScript以及JSP(Java Server Pages)技术实现,通过数据库连接池管理数据库的连接。可根据用户在管理模块中的操作,对数据库中的多级分类进行相应的增删改查操作,多级分类数据存储在数据库的一张表中,利用表的自关联实现数据的存储以及读取。
Description
技术领域
本发明涉及网络信息领域,尤其涉及一种多级分类的Web实现方法。
背景技术
在网站开发中,常常需要对数据进行分类存储以及检索,通过多级分类定义信息,便于将信息归类,这样在检索信息时,通过选择分类即可找到相关信息。特别是在检索大量数据的时候可以提高检索效率。比如,在蔬菜销售***中,卖家可以根据蔬菜属性将蔬菜进行分类,蔬菜类→叶菜类→白菜,就是一种典型的多级分类结构。
中国专利申请公布了一种易扩展的多级分类检索方法及***,该方法及***根据数据分类信息在数据表中设置分类字段,存储分类节点之间的层次关系;将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中;再根据分类节点之间的层次关系将每个节点拆分成独立的字段,与数据表中其他字段组合,生成分类关联表;检索时利用数据库索引在分类表中检索数据。当数据表中增加分类字段时,自动将增加的分类字段与该数据表之间的关联关系存储到分类字段关联表中;在给增加的分类字段赋值时,根据分类字段关联表中的关联关系,自动将与该数据表关联的所有分类字段值汇总在一起,写入到数据表的汇总分类字段中。该方法虽然提高了数据检索的效率以及扩展性,但是它将数据存储在多张表中,表与表之间进行一对一或者一对多关联,浪费数据库资源。
针对现有技术中存在的缺陷,本发明的目的是提供一种能够极大的利用数据库资源的多级分类的Web实现方法。采用Struts2+Hibernate+Spring轻量级架构实现,由于采用了Java语言,代码健壮性强,稳定,可移植性好。本发明方法还有管理方便,实用性强,可行性强,可扩展性强、维护方便以及健全性等优点。
发明内容
本发明旨在提供一种多级分类的Web实现方法,用户通过后台管理模块将各级数据存储在一张表中,利用表的自关联实现数据的存储以及读取。采用J2EE轻量级多层架构,包括三层体系:表示层、业务处理层、数据访问层。该轻量级多层架构通过Struts2、Spring和Hibernate共同实现。Struts2用于表示层、Spring用于业务处理层、Hibernate用于数据访问层。采用tomcat作为Web服务器,mysql作为中心数据库,涉及到的技术还包括JavaScript以及JSP(JavaServer Pages)。通过数据库连接池管理数据库的连接,数据库连接池负责分配、管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接,该技术能明显提高对数据库操作的性能。
本发明解决其技术问题所采用的技术方案是:一种利用Struts2、Spring以及Hibemate框架的多级分类的Web实现方法。包括:Struts2用于表示层、Spring用于业务处理层、Hibernate用于数据访问层。
一种采用上述方法实现的一种多级分类的Web实现方法,其特征是有以下几个步骤:
(1)用户通过管理模块中的增删改查操作,对多级分类进行添加、修改、删除以及查询等操作;
(2)Struts控制层根据用户操作调用相应的Action,Action调用业务逻辑层中相应方法,业务逻辑层再调用持久层中的持久化方法对数据库进行持久化操作;
(3)操作结果逐层返回,在客户端显示相应页面。
一种采用上述方法实现的一种多级分类的Web实现方法,数据库中多级分类的存储方式通过以下步骤实现:
(1)数据表中包括一级分类ID以及一级分类名称字段以及相应的描述性字段,用户可根据自身要求任意添加;
(2)添加二级分类时,只需在数据表中添加一个二级分类的ID,作为该数据表的外键,参考的主键为该数据表的ID字段,该二级分类的ID用来保存该类别所属类别的ID;
(3)一种类别可以有父类别,也可以无父类别,但是最多只能属于一个父类别;一种类别可以包含零个、一个或多个子类别;
(4)建立从一方到多方的关联,即从一级分类到二级分类的关联,一个一级分类可以包含零个、一个或多个二级分类,所以一级分类对应的持久化类中创建一个类型为java.util.Set的集合属性,用来保存该类别所包含的子类别对象。
(5)在该持久化类对应的.hbm.xml文件中添加如下映射:
(6)建立从多方到一方的关联,即从二级分类到一级分类的关联,一个二级分类只能属于一个一级分类,在该持久化类中创建一个类型为一级分类的属性,用来保存该类别所属的一级分类对象;
(7)在该持久化类对应的映射文件.hbm.xml中做如下映射:
<many-to-one name=″一级分类属性″column=″保存二级分类所述一级分类的ID的字段″class=″持久化类″lazy=″false″/>
(8)至此,从一级分类和二级分类间的一对多自关联建成,添加三级分类时可按照(2)~(5)步在数据表、持久化类以及映射文件中做相应修改即可。
一种采用上述方法实现的一种多级分类的Web实现方法,其特征是用户在检索信息时,所用方法如下:
一级ID | 二级ID | 三级ID | ... | n级ID | 字段1 | 字段2 | 字段3 | ... | 字段n |
(1)当用户需要检索一级信息时,***只需要根据上表列出所有的一级信息即可。(此种情况,结果往往是包含有多条一级信息的集合);若用户查找的是某一具体一级的信息,只需根据一级ID在上述集合结果中查找即可(此种情况,结果往往只包含一条一级信息记录)。
(2)当用户需要检索某一级分类下的二级分类信息时,根据用户给出的一级ID在上表中查找该ID对应的二级类信息(此种情况,结果往往是包含有多条二级信息的集合);若用户查找的是某一具体二级的信息,只需根据二级ID在上述集合结果中查找即可(此种情况,结果往往只包含有一条二级信息记录)。用户也可以根据二级ID直接在上表中查询二级分类信息。
(3)当用户需要检索某二级分类下的三级信息时,根据用户给出的二级ID在上表中查找该ID对应的三级分类信息即可(结果往往是包含有多条三级信息的集合);若用户查找的是某一具体三级的信息,只需根据三级ID在上述集合结果中查找即可(此种情况,结果往往只包含有一条三级信息记录)。用户也可以根据三级ID直接在上表中查询三级分类信息。
(4)当存在超过三级分类信息时,用户的检索方法与上面所述类似。
附图说明
图1本发明多级分类的Web实现方法的结构图
图2本发明多级分类的Web实现方法的流程图
具体实施方式
现在结合附图对本发明做进一步详细的说明。这些附图均为简化的示意图,仅以示意的方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
发明的目的在于提供一种方便、简单、快捷多级分类的Web实现方法。如图1所示为本方法多级分类的Web实现方法的结构图。利用struts.xml文件(1)对各个组件进行配置。当用户访问页面时,通过浏览器会先访问到JSP(4)或控制层Controller:StrutsPrepareAndExecutefilter(2),Struts2将页面的内容填充到Entity(5),然后通过Action(5)访问业务层得到Model数据模型(5),在JSP表示层(4)可以使用Struts2的标签库展现数据或者绑定***资源。业务层Service(6)(通过Spring容器(12)初始化)主要提供业务逻辑的服务,以供Web层(Action)的调用,主要用两个类:接口类ILingbabaDAO(8)和工厂类DAOFactory(7)。工厂类DAOFactory(7)构造接口ILingbabaDAO(8)的对象,由此对象来操纵实体达到业务处理的目的。ILingbabaDAO(8)调用LingbabaDAO(Hibernate持久层)(10),LingbabaDAO(10)通过数据库连接池(DB Pool)(11)对数据库(Database)(9)进行操作,相关结果在表示层上显示。
如图2所示为本方法多级分类的Web实现方法的流程图。开始(S1);用户选择要管理的分类进行相应的操作(S2);接着利用struts.xml配置文件选择相应的Action(S3);接着Action调用相应的业务层方法(S4);然后业务层方法调用持久层方法,对数据库进行持久化操作(S5);操作结果逐层返回(S6);最后在客户端显示相应页面(S7);结束(S8)。
以上述本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (7)
1.一种多级分类的Web实现方法,其可根据用户在管理模块中的操作,对数据库中的多级分类进行相应的增删改查操作,多级分类数据存储在数据库的一张表中,利用表的自关联实现数据的存储以及读取。
2.如权利要求1所述的一种多级分类的Web实现方法,其特征是:所述的Web实现主要利用Struts2、Spring以及Hibernate框架。Struts2用于表示层、Spring用于业务处理层、Hibernate用于数据访问层,采用tomcat作为Web服务器,mysql作为中心数据库,页面显示部分采用JavaScript以及JSP(Java Server Pages)技术实现,通过数据库连接池管理数据库的连接。
3.如权利要求1所述的一种多级分类的Web实现方法,其特征是主要包括以下部分:对各个组件进行配置的控制层配置文件(struts.xml);根据客户端的请求执行对应的后台程序并根据结果显示不同页面的控制层(Controller:StrutsPrepareAndExecutefilter);和用户进行交互的客户端(Browser);显示检索结果的表示层(JSP);提供业务逻辑服务的业务层(LingbabaService);对数据库进行持久化操作的持久层(LingbabaDAO Hibernate)。
4.如权利要求1所述的一种多级分类的Web实现方法,其特征是:当用户访问页面时,通过浏览器(Browser)会先访问到表示层(JSP)或控制层(Controller:StrutsPrepareAndExecutefilter),控制层(Controller:StrutsPrepareAndExecutefilter)将页面的内容填充到Action,然后通过Action访问业务层(LingbabaService),业务层调用持久层方法得到模型层(Model)数据模型,在表示层(JSP)可以使用Struts2的标签库展现数据或者绑定***资源。业务层(LingbabaService)主要提供业务逻辑的服务,以供Web层(Action)的调用,主要用两个类:接口类ILingbabaDAO和工厂类DAOFactory。工厂类DAOFactory构造接口ILingbabaDAO的对象,由此对象来操纵实体达到业务处理的目的。ILingbabaDAO调用LingbabaDAO(Hibernate持久层)对数据库进行操作,相关结果在表示层上显示。
5.如权利要求4所述的一种多级分类的Web实现解决方案,其特征是有以下几个步骤:
(1)用户通过管理模块中的增删改查操作,对多级分类进行添加、删除、修改以及查询等操作;
(2)Struts控制层根据用户操作调用相应的Action,Action调用业务逻辑层中相应方法,业务逻辑层再调用持久层中的持久化方法对数据库进行相应的持久化操作;
(3)操作结果逐层返回,在客户端显示相应页面。
6.如权利要求1所述的一种多级分类的Web实现方法,主要有以下步骤实现多级分类数据存储在一张表中:
(1)数据表中包括一级分类ID以及一级分类名称字段以及相应的描述性字段,用户可根据自身要求任意添加;
(2)添加二级分类时,只需在数据表中添加一个二级分类的ID,作为该数据表的外键,参考的主键为该数据表的ID字段,该二级分类的ID用来保存该类别所属类别的ID;
(3)一种类别可以有父类别,也可以无父类别,但是最多只能属于一个父类别;一种类别可以包含零个、一个或多个子类别;
(4)建立从一方到多方的关联,即从一级分类到二级分类的关联,一个一级分类可以包含零个、一个或多个二级分类,所以一级分类对应的持久化类中创建一个类型为java.util.Set的集合属性,用来保存该类别所包含的子类别对象。
(5)在该持久化类对应的.hbm.xml文件中添加如下映射:
(6)建立从多方到一方的关联,即从二级分类到一级分类的关联,一个二级分类只能属于一个一级分类,在该持久化类中创建一个类型为一级分类的属性,用来保存该类别所属的一级分类对象;
(7)在该持久化类对应的映射文件.hbm.xml中做如下映射:
<many-to-one name=”一级分类属性”column=”保存二级分类所述一级分类的ID的字段”class=”持久化类”lazy=”false”/>
(8)至此,从一级分类和二级分类间的一对多自关联建成,添加三级分类时可按照(2)~(7)步在数据表、持久化类以及映射文件中做相应修改即可。
7.如权利要求1所述的一种多级分类的Web实现方法,用户在检索信息时,所用方法如下:
(1)当用户需要检索一级信息时,***只需要根据上表列出所有的一级信息即可。(此种情况,结果往往是包含有多条一级信息的集合);若用户查找的是某一具体一级的信息,只需根据一级ID在上述集合结果中查找即可(此种情况,结果往往只包含一条一级信息记录)。
(2)当用户需要检索某一级分类下的二级分类信息时,根据用户给出的一级ID在上表中查找该ID对应的二级类信息(此种情况,结果往往是包含有多条二级信息的集合);若用户查找的是某一具体二级的信息,只需根据二级ID在上述集合结果中查找即可(此种情况,结果往往只包含有一条二级信息记录)。用户也可以根据二级ID直接在上表中查询二级分类信息。
(3)当用户需要检索某二级分类下的三级信息时,根据用户给出的二级ID在上表中查找该ID对应的三级分类信息即可(结果往往是包含有多条三级信息的集合);若用户查找的是某一具体三级的信息,只需根据三级ID在上述集合结果中查找即可(此种情况,结果往往只包含有一条三级信息记录。用户也可以根据三级ID直接在上表中查询三级分类信息。
(4)当存在超过三级分类信息时,用户的检索方法与上面所述类似。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104136720A CN103455335A (zh) | 2013-09-12 | 2013-09-12 | 一种多级分类的Web实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104136720A CN103455335A (zh) | 2013-09-12 | 2013-09-12 | 一种多级分类的Web实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103455335A true CN103455335A (zh) | 2013-12-18 |
Family
ID=49737742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013104136720A Pending CN103455335A (zh) | 2013-09-12 | 2013-09-12 | 一种多级分类的Web实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103455335A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927168A (zh) * | 2014-04-02 | 2014-07-16 | 北京中交兴路车联网科技有限公司 | 一种面向对象的数据模型持久化的方法及装置 |
CN104270403A (zh) * | 2014-09-01 | 2015-01-07 | 江苏西贝电子网络有限公司 | 基于struts2框架的云平台信息web监控*** |
CN105007265A (zh) * | 2015-06-24 | 2015-10-28 | 福建富士通信息软件有限公司 | 将SOAP转换为Spring远程调用的方法及*** |
CN105681346A (zh) * | 2016-03-15 | 2016-06-15 | 福建星海通信科技有限公司 | 一种基于工厂类实现报文解析的方法 |
CN106777352A (zh) * | 2017-01-18 | 2017-05-31 | 深圳市雨云科技有限公司 | 数据访问方法及*** |
CN109448801A (zh) * | 2018-11-09 | 2019-03-08 | 医渡云(北京)技术有限公司 | 医疗数据处理方法及装置、浏览器端、介质和电子设备 |
CN109918369A (zh) * | 2017-12-13 | 2019-06-21 | 中兴通讯股份有限公司 | 数据存储方法及装置 |
CN110321355A (zh) * | 2019-07-12 | 2019-10-11 | 杭州美巴科技有限公司 | 一种自适应部分查询字段***及执行方法 |
CN115203176A (zh) * | 2022-09-15 | 2022-10-18 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据库操作方法、装置、设备、存储介质和程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060053120A1 (en) * | 2004-09-07 | 2006-03-09 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Web service registry and method of operation |
CN101840400A (zh) * | 2009-03-19 | 2010-09-22 | 北大方正集团有限公司 | 一种多级分类检索方法及*** |
-
2013
- 2013-09-12 CN CN2013104136720A patent/CN103455335A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060053120A1 (en) * | 2004-09-07 | 2006-03-09 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Web service registry and method of operation |
CN101840400A (zh) * | 2009-03-19 | 2010-09-22 | 北大方正集团有限公司 | 一种多级分类检索方法及*** |
Non-Patent Citations (2)
Title |
---|
卢瀚,等: "《Java Web开发实战1200例(第II卷)》", 30 June 2011, article "实现商品表的自关联" * |
王小科,等: "《Java实用教程 第2版》", 30 November 2012, article "Java Web框架技术" * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927168A (zh) * | 2014-04-02 | 2014-07-16 | 北京中交兴路车联网科技有限公司 | 一种面向对象的数据模型持久化的方法及装置 |
CN104270403A (zh) * | 2014-09-01 | 2015-01-07 | 江苏西贝电子网络有限公司 | 基于struts2框架的云平台信息web监控*** |
CN105007265A (zh) * | 2015-06-24 | 2015-10-28 | 福建富士通信息软件有限公司 | 将SOAP转换为Spring远程调用的方法及*** |
CN105681346A (zh) * | 2016-03-15 | 2016-06-15 | 福建星海通信科技有限公司 | 一种基于工厂类实现报文解析的方法 |
CN106777352A (zh) * | 2017-01-18 | 2017-05-31 | 深圳市雨云科技有限公司 | 数据访问方法及*** |
CN109918369A (zh) * | 2017-12-13 | 2019-06-21 | 中兴通讯股份有限公司 | 数据存储方法及装置 |
CN109918369B (zh) * | 2017-12-13 | 2024-01-23 | 金篆信科有限责任公司 | 数据存储方法及装置 |
CN109448801A (zh) * | 2018-11-09 | 2019-03-08 | 医渡云(北京)技术有限公司 | 医疗数据处理方法及装置、浏览器端、介质和电子设备 |
CN110321355A (zh) * | 2019-07-12 | 2019-10-11 | 杭州美巴科技有限公司 | 一种自适应部分查询字段***及执行方法 |
CN115203176A (zh) * | 2022-09-15 | 2022-10-18 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据库操作方法、装置、设备、存储介质和程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103455335A (zh) | 一种多级分类的Web实现方法 | |
CN110674228B (zh) | 数据仓库模型构建和数据查询方法、装置及设备 | |
US10776336B2 (en) | Dynamic creation and maintenance of multi-column custom indexes for efficient data management in an on-demand services environment | |
CN103577440B (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
US9158843B1 (en) | Addressing mechanism for data at world wide scale | |
US9747127B1 (en) | Worldwide distributed job and tasks computational model | |
JP6434154B2 (ja) | トランザクションアクセスパターンに基づいた結合関係の識別 | |
US9218408B2 (en) | Method for automatically creating a data mart by aggregated data extracted from a business intelligence server | |
CN107038207A (zh) | 一种数据查询方法、数据处理方法及装置 | |
CN104850601B (zh) | 基于图数据库的警务实时分析应用平台及其构建方法 | |
US10452639B2 (en) | Processing joins in a database system using zero data records | |
CN103620601A (zh) | 在映射缩减过程中汇合表 | |
US9201700B2 (en) | Provisioning computer resources on a network | |
US10114846B1 (en) | Balanced distribution of sort order values for a multi-column sort order of a relational database | |
US7814045B2 (en) | Semantical partitioning of data | |
CN105183735A (zh) | 数据的查询方法及查询装置 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN105164673A (zh) | 跨数据库和文件***的查询一体化 | |
WO2022083436A1 (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN106095964A (zh) | 一种对数据进行可视化归档与搜索的方法 | |
US9652740B2 (en) | Fan identity data integration and unification | |
CN107908794A (zh) | 一种数据挖掘的方法、***、设备及计算机可读存储介质 | |
CN111782703B (zh) | 灌区对象数据间关联关系自动管理和展示的方法及*** | |
CN104408084B (zh) | 一种大数据筛选方法及装置 | |
CN111026709B (zh) | 基于集群访问的数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131218 |