CN106599139B - 一种基于MyBatis框架的SQL处理方法及装置 - Google Patents
一种基于MyBatis框架的SQL处理方法及装置 Download PDFInfo
- Publication number
- CN106599139B CN106599139B CN201611105164.6A CN201611105164A CN106599139B CN 106599139 B CN106599139 B CN 106599139B CN 201611105164 A CN201611105164 A CN 201611105164A CN 106599139 B CN106599139 B CN 106599139B
- Authority
- CN
- China
- Prior art keywords
- sql
- channel
- customer
- code information
- belongs
- 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.)
- Active
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/2454—Optimisation of common expressions
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Abstract
本发明公开了一种基于MyBatis框架的SQL处理方法、装置及服务器,包括:获取客户ID信息;根据客户ID信息查询客户的所属渠道组长编码信息;利用所属渠道组长编码信息,确定第一SQL,第一SQL为获取客户可销商品的SQL;利用所属渠道组长编码信息,确定第二SQL,第二SQL为获取客户渠道上级渠道的可销商品的SQL;获取第一SQL和第二SQL的并集,生成主SQL,并将主SQL存储至XML文件;可见,在本实施例中,通过将第一SQL和第二SQL取并集的这种封装方案,可在实现每个SQL的功能的基础上,减少了SQL的重复逻辑和代码,保证代码维护的统一性,减少代码的冗余和维护成本。
Description
技术领域
本发明涉及MyBatis框架的SQL处理技术领域,更具体地说,涉及一种基于MyBatis框架的SQL处理方法、装置及服务器。
背景技术
MyBatis是一个基于Java的持久层框架,目前,MyBatis的SQL均在xml文件中编写,但是,在xml文件中编写SQL有一定的编写复杂度和难度。因此在编写大量SQL时,会产生由于编写SQL的数量变大而增加SQL的编写复杂度和难度;并且在xml文件中编写的多个SQL,会出现重复的SQL,从而增加代码的冗余和维护成本。
因此,如何减少编码复杂度和难度,避免相同的SQL重复出现在xml中是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于MyBatis框架的SQL处理方法、装置及服务器,以实现减少编码复杂度和难度,避免相同的SQL重复出现在xml中,增加代码的冗余和维护成本的问题。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于MyBatis框架的SQL处理方法,包括:
获取客户ID信息;
根据所述客户ID信息查询所述客户的所属渠道组长编码信息;
利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;
利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所述渠道上级渠道的可销商品的SQL;
获取所述第一SQL和所述第二SQL的并集,生成主SQL,并将所述主SQL存储至XML文件。
其中,并将所述主SQL存储至XML文件,包括:
将所述主SQL存入Map中,通过Map传递至MyBatis框架的XML文件。
其中,所述获取客户ID信息之前,还包括:
判断参数customerid是否为空;
若不为空,在从所述参数customerid中获取所述客户ID信息。
一种基于MyBatis框架的SQL处理装置,包括:
客户ID获取模块,用于获取客户ID信息;
组长编码信息获取模块,用于根据所述客户ID信息查询所述客户的所属渠道组长编码信息;
第一SQL确定模块,用于利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;
第二SQL确定模块,用于利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所述渠道上级渠道的可销商品的SQL;
主SQL生成模块,用于获取所述第一SQL和所述第二SQL的并集,生成主SQL;
存储模块,用于将所述主SQL存储至XML文件。
其中,所述存储模块将所述主SQL存入Map中,通过Map传递至MyBatis框架的XML文件。
其中,还包括:
判断模块,用于判断参数custonerid是否为空;
所述客户ID获取模块,用于在所述参数custonerid不为空时,从所述参数customerid中获取所述客户ID信息。
一种服务器,包括上述的SQL处理装置。
通过以上方案可知,本发明实施例提供的一种基于MyBatis框架的SQL处理方法,包括:获取客户ID信息;根据所述客户ID信息查询所述客户的所属渠道组长编码信息;利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所述渠道上级渠道的可销商品的SQL;获取所述第一SQL和所述第二SQL的并集,生成主SQL,并将所述主SQL存储至XML文件;
可见,在本实施例中,通过获取第一SQL和第二SQL,并将第一SQL和第二SQL取并集的这种封装方案,减少编码复杂度和难度,并在实现每个SQL的功能的基础上,减少了SQL的重复逻辑和代码,保证代码维护的统一性,减少代码的冗余和维护成本;本发明还公开了一种基于MyBatis框架的SQL处理装置及服务器,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于MyBatis框架的SQL处理方法流程示意图;
图2为本发明实施例公开的一种基于MyBatis框架的SQL处理装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于MyBatis框架的SQL处理方法、装置及服务器,以实现减少编码复杂度和难度,避免相同的SQL重复出现在xml中,增加代码的冗余和维护成本的问题。
参见图1,本发明实施例提供的一种基于MyBatis框架的SQL处理方法,包括:
S101、获取客户ID信息;
S102、根据所述客户ID信息查询所述客户的所属渠道组长编码信息;
具体的,本实施例中的客户的所属渠道组长编码信息中,包括了该客户所属渠道的编码信息,以及该客户所属渠道的上级渠道的编码信息,通过上述编码信息,可在后台生成对应的SQL。
S103、利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;
S104、利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所述渠道上级渠道的可销商品的SQL;
需要说明的是,本方案中的SQL为获取对应可销商品的SQL,例如:第一SQL的功能为:获取该客户的可销商品;第二SQL的功能为:获取该客户所述渠道的上级渠道的可销商品。并且,由于在xml中编写sql比较复杂,因此在本实施例中,确定所属渠道组长编码信息之后,可以根据所属渠道组长编码信息在java后台进行编码,并在编码后进行合并处理,生成主SQL,减少编码复杂度和难度;需要说明的是,本实施例中的第一和第二只是为了区分两个SQL,并不是说明只能对两个SQL进行操作。
S105、获取所述第一SQL和所述第二SQL的并集,生成主SQL,并将所述主SQL存储至XML文件。
其中,并将所述主SQL存储至XML文件,包括:
将所述主SQL存入Map中,通过Map传递至MyBatis框架的XML文件。
具体的,在现有技术中,生成两个SQL后,会将这两个SQL均存入XML文件中,但是由于这两个SQL的功能相同,均是获取可销商品,不同的只是获取的对象不同,例如:第一SQL获取的是该客户的,第二SQL获取的是该客户的上级渠道的;
因此,若将两个SQL均存入XML文件中,则会出现很多相同的代码,从而增加了代码的冗余和维护成本,因此在本实施例中,将两个SQL存入XML文件之前,需要对两个SQL取并集,将第一sql的取数集合跟第二Sql的取数集合合并成一个数据集合,这样在能实现两个SQL的功能的基础上,减少了XML文件中重复SQL的出现,保证代码维护的统一性,减少代码的冗余和维护成本。
基于上述实施例,在本实施例中,所述获取客户ID信息之前,还包括:
判断参数customerid是否为空;
若不为空,在从所述参数customerid中获取所述客户ID信息。
具体的,在本实施例中,若参数custonerid不为空,则说明该参数中有客户ID信息,则根据客户ID信息对该客户的所属渠道组长编码信息进行查询,并生成主SQL,需要说明的是,由于主SQL是通过第一SQL和第二SQL取并集生成的,因此,将主SQL存入XML文件后,可通过主SQL能查询到该客户的可销商品和该客户所属渠道的上级渠道的可销商品,并可生成可销商品数据集合的清单。
下面对本发明实施例提供的SQL处理装置进行介绍,下文描述的SQL处理装置与上文描述的SQL处理方法可以相互参照。
参见图2,本发明实施例提供的一种基于MyBatis框架的SQL处理装置,包括:
客户ID获取模块100,用于获取客户ID信息;
组长编码信息获取模块200,用于根据所述客户ID信息查询所述客户的所属渠道组长编码信息;
第一SQL确定模块300,用于利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;
第二SQL确定模块400,用于利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所述渠道上级渠道的可销商品的SQL;
主SQL生成模块500,用于获取所述第一SQL和所述第二SQL的并集,生成主SQL;
存储模块600,用于将所述主SQL存储至XML文件。
基于上述实施例,所述存储模块将所述主SQL存入Map中,通过Map传递至MyBatis框架的XML文件。
基于上述实施例,在本实施例中,还包括:
判断模块,用于判断参数custonerid是否为空;
所述客户ID获取模块,用于在所述参数custonerid不为空时,从所述参数customerid中获取所述客户ID信息。
本发明实施例还公开了一种服务器,包括上述任意实施例所述的SQL处理装置。
本发明实施例提供的一种基于MyBatis框架的SQL处理方法,包括:获取客户ID信息;根据所述客户ID信息查询所述客户的所属渠道组长编码信息;利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所述渠道上级渠道的可销商品的SQL;获取所述第一SQL和所述第二SQL的并集,生成主SQL,并将所述主SQL存储至XML文件;
可见,在本实施例中,通过获取第一SQL和第二SQL,并将第一SQL和第二SQL取并集的这种封装方案,减少编码复杂度和难度,并在实现每个SQL的功能的基础上,减少了SQL的重复逻辑和代码,保证代码维护的统一性,减少代码的冗余和维护成本;本发明还公开了一种基于MyBatis框架的SQL处理装置及服务器,同样能实现上述技术效果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种基于MyBatis框架的SQL处理方法,其特征在于,包括:
获取客户ID信息;
根据所述客户ID信息查询所述客户的所属渠道组长编码信息;其中,客户的所述所属渠道组长编码信息中包括了所述客户所属渠道的编码信息,以及所述客户所属渠道的上级渠道的编码信息,以通过所述所属渠道的编码信息和所述所属渠道的上级渠道的编码信息,在后台生成对应的SQL;
利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;
利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所属渠道的上级渠道的可销商品的SQL;
获取所述第一SQL和所述第二SQL的并集,将所述第一SQL的取数集合与所述第二SQL的取数集合合并成一个数据集合,生成主SQL,并将所述主SQL存储至XML文件,以通过所述主SQL查询所述客户的可销商品和所属渠道的上级渠道的可销商品,生成可销商品数据集合的清单。
2.根据权利要求1所述的SQL处理方法,其特征在于,并将所述主SQL存储至XML文件,包括:
将所述主SQL存入Map中,通过Map传递至MyBatis框架的XML文件。
3.根据权利要求1或2所述的SQL处理方法,其特征在于,所述获取客户ID信息之前,还包括:
判断参数customerid是否为空;
若不为空,在从所述参数customerid中获取所述客户ID信息。
4.一种基于MyBatis框架的SQL处理装置,其特征在于,包括:
客户ID获取模块,用于获取客户ID信息;
组长编码信息获取模块,用于根据所述客户ID信息查询所述客户的所属渠道组长编码信息;其中,客户的所述所属渠道组长编码信息中包括了所述客户所属渠道的编码信息,以及所述客户所属渠道的上级渠道的编码信息,以通过所述所属渠道的编码信息和所述所属渠道的上级渠道的编码信息,在后台生成对应的SQL;
第一SQL确定模块,用于利用所述所属渠道组长编码信息,确定第一SQL,所述第一SQL为获取所述客户可销商品的SQL;
第二SQL确定模块,用于利用所述所属渠道组长编码信息,确定第二SQL,所述第二SQL为获取所述客户所属渠道的上级渠道的可销商品的SQL;
主SQL生成模块,用于获取所述第一SQL和所述第二SQL的并集,将所述第一SQL的取数集合与所述第二SQL的取数集合合并成一个数据集合,生成主SQL;
存储模块,用于将所述主SQL存储至XML文件,以通过所述主SQL查询所述客户的可销商品和所属渠道的上级渠道的可销商品,生成可销商品数据集合的清单。
5.根据权利要求4所述的SQL处理装置,其特征在于,
所述存储模块将所述主SQL存入Map中,通过Map传递至MyBatis框架的XML文件。
6.根据权利要求4或5所述的SQL处理装置,其特征在于,还包括:
判断模块,用于判断参数custonerid是否为空;
所述客户ID获取模块,用于在所述参数custonerid不为空时,从所述参数customerid中获取所述客户ID信息。
7.一种服务器,其特征在于,包括如权利要求4-6中任意一项所述的SQL处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611105164.6A CN106599139B (zh) | 2016-12-05 | 2016-12-05 | 一种基于MyBatis框架的SQL处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611105164.6A CN106599139B (zh) | 2016-12-05 | 2016-12-05 | 一种基于MyBatis框架的SQL处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599139A CN106599139A (zh) | 2017-04-26 |
CN106599139B true CN106599139B (zh) | 2021-02-26 |
Family
ID=58596993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611105164.6A Active CN106599139B (zh) | 2016-12-05 | 2016-12-05 | 一种基于MyBatis框架的SQL处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599139B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107818157B (zh) * | 2017-10-31 | 2021-06-29 | 北京酷我科技有限公司 | 一种基于fmdb的sql语句封装方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902778A (zh) * | 2012-09-28 | 2013-01-30 | 用友软件股份有限公司 | 查询语句优化装置和查询语句优化方法 |
CN102945256A (zh) * | 2012-10-18 | 2013-02-27 | 福建省海峡信息技术有限公司 | 海量sql语句合并归类的方法及装置 |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN105260967A (zh) * | 2015-11-30 | 2016-01-20 | 盐城工学院 | 一种基于web的教育机构管理系统及其数据操作方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612487B2 (en) * | 2011-09-07 | 2013-12-17 | International Business Machines Corporation | Transforming hierarchical language data into relational form |
CN105138326B (zh) * | 2015-08-11 | 2019-03-22 | 北京思特奇信息技术股份有限公司 | 一种基于ibatis实现sql动态配置的方法及系统 |
CN105630508A (zh) * | 2015-12-31 | 2016-06-01 | 广州亦云信息技术有限公司 | 在Java系统中封装SQL语言的处理方法及系统 |
-
2016
- 2016-12-05 CN CN201611105164.6A patent/CN106599139B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN102902778A (zh) * | 2012-09-28 | 2013-01-30 | 用友软件股份有限公司 | 查询语句优化装置和查询语句优化方法 |
CN102945256A (zh) * | 2012-10-18 | 2013-02-27 | 福建省海峡信息技术有限公司 | 海量sql语句合并归类的方法及装置 |
CN105260967A (zh) * | 2015-11-30 | 2016-01-20 | 盐城工学院 | 一种基于web的教育机构管理系统及其数据操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106599139A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123374B (zh) | 分布式数据库中聚合查询的方法及装置 | |
CN106557486A (zh) | 一种数据的存储方法和装置 | |
CN102541918A (zh) | 重复信息识别方法和设备 | |
US11783370B2 (en) | Graph-based compression of data records | |
CN110955714B (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
CN105183901A (zh) | 一种数据查询引擎读取数据库表的方法及装置 | |
US10360232B2 (en) | Semantic mapping of data from an entity-relationship model to a graph-based data format to facilitate simplified querying | |
CN110389989B (zh) | 一种数据处理方法、装置及设备 | |
CN110955646A (zh) | 一种数据存储、查询方法、装置、设备及介质 | |
CN106599139B (zh) | 一种基于MyBatis框架的SQL处理方法及装置 | |
CN107368500B (zh) | 数据抽取方法及系统 | |
US9058215B2 (en) | Integration of a calculation engine with a software component | |
CN110704486B (zh) | 数据处理方法、装置、系统、存储介质和服务器 | |
US8515947B2 (en) | Analyzing XML data | |
CN105677776A (zh) | 一种数据处理方法及装置 | |
US20210141791A1 (en) | Method and system for generating a hybrid data model | |
CN113298336A (zh) | 资源排产信息确定方法及装置 | |
US20090063356A1 (en) | Consensus Determination Framework | |
CN113449005B (zh) | 账户管理方法及装置 | |
CN109933573B (zh) | 数据库业务更新方法、装置及系统 | |
CN103019665A (zh) | 一种单据打开方法及装置 | |
CN117271973A (zh) | 一种基于数据清洗的商品数据处理方法及装置 | |
CN115759674A (zh) | 一种基于特定生产模式的物资需求管理方法、设备及介质 | |
CN116166656A (zh) | 多源数据存储方法、装置、终端设备和计算机介质 | |
CN116069861A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |