基于XML配置的动态化SQL查询方法技术

技术编号:15690957 阅读:64 留言:0更新日期:2017-06-24 03:46
本发明专利技术涉及一种电商数据库维护优化领域,提供一种基于XML配置的动态化SQL查询方法。根据业务逻辑将SQL语句分解并存放在XML文件中,并为分解的SQL语句设置参数值匹配的条件;为查询请求配置参数列表;执行查询时根据查询键值调出参数值匹配条件能与参数列表相匹配的SQL语句,将调出的SQL语句组合成SQL组装对象,该SQL组装对象负责执行查询请求。用配置化代替硬编码;动态语义计算代替逻辑代码编写;产品交付后仍可对代码行为进行即时更新,提高服务响应时间和质量。

Dynamic SQL query method based on XML configuration

The invention relates to an electronic commerce database maintenance optimization field, and provides a dynamic SQL inquiry method based on XML configuration. According to the business logic of the SQL statement is decomposed and stored in the XML file, and set the parameters for the SQL statement decomposition values of the matching conditions; request configuration parameter list query; query is executed according to the query key parameter values out of the SQL statement matching conditions can be matched with the parameter list, the SQL statement combined out into SQL assembly the object, the SQL object is responsible for the implementation of query request assembly. Using configuration instead of hard coding; dynamic semantic computing instead of logical code writing; product delivery can still update the code behavior, and improve service response time and quality.

【技术实现步骤摘要】
基于XML配置的动态化SQL查询方法
本专利技术涉及一种电商数据库维护优化领域,尤其涉及一种基于XML配置的动态化SQL查询方法。
技术介绍
目前,在电子商务领域,由于数字商品需要的的描述特征多、所涉行业广,且经常需要根据业务营销需求来变更SQL语句,提高了开发相关数据库的难度,加之开发人员的经验不尽相同,配合协调也比较困难,导致在更换SQL语句的过程中工作量和工作难度日巨,费时费力,很不经济。这主要是由于SQL语句固有的以下几方面特点所决定的;1.在传统的开发模式中SQL语句被硬编码在程序代码中,导致一旦交付使用后,若发现设计故障和随着数据堆积造成的性能下降的问题时,只能通过重新编码再测试并发布新版本来的手段来解决;2.在传统硬编码的情形中,还大量地出现参数不同,语句不同的情况,导致大量的代码逻辑跳转被写死在程序源码中,一旦需要增加新的逻辑条件,则需要重新追加代码,导致占用内存资源过多,计算效能下降;3.SQL语句在代码内的分散性,还严重扰乱了代码的可读性;在性能跟踪时,也难以定位最终执行的逻辑次序。
技术实现思路
有鉴于此,本专利技术提供一种基于XML配置的动态化SQL组装方法,达到灵活地组装SQL的目的,解决硬编码SQL带来的前述问题和缺陷。为了达成本专利技术的上述目的,本专利技术的技术方案如下。基于XML配置的动态化SQL查询方法,根据业务逻辑将SQL语句分解并存放在XML文件中,并为分解的SQL语句设置参数值匹配的条件;为查询请求配置参数列表;执行查询时根据查询键值调出参数值匹配条件能与参数列表相匹配的SQL语句,将调出的SQL语句组合成SQL组装对象,该SQL组装对象负责执行查询请求。优选地,组合SQL组装对象时,通过哈希值检索参与组合的SQL。在某些实施例中,所述XML文件在初始化时加载到缓存;执行查询时根据查询键值判断欲组装之SQL组装对象是否已在内存中,若是,则直接使用内存中的该SQL组装对象。优选地,在某些实施例中,所述匹配条件是给定参数名,并限该匹配定条件为该参数名存在且值不为空时成立。优选地,在某些实施例中,所述匹配条件是逻辑运算。优选地,在某些实施例中,所述逻辑运算是值大于或等于N时成立。优选地,在某些实施例中,所述逻辑运算是值小于或等于M时成立。采用本专利技术的技术方案后,大幅度简化了SQL语句在编程中的硬代码实现(JAVA代码、存储过程等),同时提供了文件系统层面的XML化,在软件系统发布后,仍然提供了快速定位错误;快速修改、快速部署。此外,本专利技术优选实施的缓存机制能够在内存与性能间找到了良好的平衡。本专利技术人已经在此
技术实现思路
章节总地描述了本专利技术的特征和优点;然而,本专利技术难以通过穷举的方式一一对所有基于本专利技术精神的技术方案进行罗列。所以,以下将通过对本专利技术实施的举例,使本专利技术之精神对于本领域普通技术人员而言已经能够清楚地掌握,所以,在本专利技术中未明确给出的另外的特征、优点和实施方案对于查看了本专利技术的本领域普通技术人员来说都是清楚的,因此,应该理解,吸取了本专利技术之后对本专利技术所作出的修饰和改进都在本专利的保护范围之内,对于在本专利技术的基础上作出的变劣性技术方案也属于本专利的保护范围内。附图说明图1是本专利技术实施例原理图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,以下将列举实施例对本专利技术的具体实施方式做详细说明。在以下的描述中阐述了以便于充分理解本专利技术的具体实施例,但是,本专利技术能够以不同于以下描述的方式实施,本领域技术人员可以在不违背本专利技术内涵的情况下做类似推广。因此,本专利技术不受以下公开的具体实施例的限制。如图1所示,本实施例基于XML配置的动态化SQL查询方法,XML配置项框正式根据本专利技术精神的要求根据业务逻辑将SQL语句分解并存放在XML文件中的一种实施。在该实施中,为分解的SQL语句设置了参数值匹配的条件;该匹配条件可以通过test条件判断或test条件语句得以实施。特别地,在本实施例中,还可以通过assign变量赋值改变该匹配条件。如图1所示,本实施例基于XML配置的动态化SQL查询方法,请求对象框正式根据本专利技术精神的要求为查询请求配置参数列表。图1的箭头示意根据本专利技术精神的要求根据查询键值调出参数值匹配条件能与参数列表相匹配的SQL语句,将调出的SQL语句组合成SQL组装对象,该SQL组装对象负责执行查询请求。其中,可执行语句框示意了根据本专利技术精神实施的一种SQL对象。在本实施例中,当执行请求发起时,系统根据查询键值,判断是否已存在内存组装对象,不存在时立即从缓存XML读取配置值解析为组装对象。根据执行请求的参数,组装对象通过哈希检索快速组合出最终SQL语句。对于不存在的参数则自动抛弃。在这一过程当中,内存对象将动态逻辑逐一与请求的参数列表运算,逻辑返回真值,则启用该动态语句;将语句静态部分与动态运算为真值的动态语句按顺序追加,生成最终SQL语句;将最终SQL语句中匹配的所有参数名,与参数列表交集,获得当前执行参数表;将返回的SQL语句与参数提交数据库处理,完成查询。此外,系统还设计了参数值转换方式,将匹配逻辑可转换为简单的标示逻辑,在XML层面实现if,switch,for等语句相似功能。本实施的优点是显而易见的,本实施例用配置化代替硬编码;动态语义计算代替逻辑代码编写;产品交付后仍可对代码行为进行即时更新,提高服务响应时间和质量。本文档来自技高网
...
基于XML配置的动态化SQL查询方法

【技术保护点】
基于XML配置的动态化SQL查询方法,其特征在于,根据业务逻辑将SQL语句分解并存放在XML文件中,并为分解的SQL语句设置参数值匹配的条件;为查询请求配置参数列表;执行查询时根据查询键值调出参数值匹配条件能与参数列表相匹配的SQL语句,将调出的SQL语句组合成SQL组装对象,该SQL组装对象负责执行查询请求。

【技术特征摘要】
1.基于XML配置的动态化SQL查询方法,其特征在于,根据业务逻辑将SQL语句分解并存放在XML文件中,并为分解的SQL语句设置参数值匹配的条件;为查询请求配置参数列表;执行查询时根据查询键值调出参数值匹配条件能与参数列表相匹配的SQL语句,将调出的SQL语句组合成SQL组装对象,该SQL组装对象负责执行查询请求。2.根据权利要求1所述的一种基于XML配置的动态化SQL查询方法,其特征在于,所述XML文件在初始化时加载到缓存;执行查询时根据查询键值判断欲组装之SQL组装对象是否已在内存中,若是,则直接使...

【专利技术属性】
技术研发人员:杨伎华
申请(专利权)人:厦门南讯软件科技有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1