System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种动态生成SQL语句的方法技术_技高网

一种动态生成SQL语句的方法技术

技术编号:40494946 阅读:6 留言:0更新日期:2024-02-26 19:23
本发明专利技术公开了一种动态生成SQL语句的方法,包括以下步骤:S1、创建JSONArray条件,所述JSONArray条件包括若干元素,每个所述元素的组成内容包括连接关系、条件排序及条件主体,其中,所述条件主体包括属性、值及值应用方式;S2、枚举所述值应用方式与SQL关键字对应关系,并根据检测出的对应关系填充SQL关键字和值;S3、获取所述JSONArray条件内容,查找所述JSONArray条件的SQL关键字,取出所述JSONArray条件里元素的属性及值,并和对应的SQL关键字拼接生成SQL语句。

【技术实现步骤摘要】

本专利技术涉及计算机,具体涉及一种动态生成sql语句的方法。


技术介绍

1、在报表统计、数据分析等需要多维度查询数据库的系统中,一般会有根据各种条件查询数据库数据的需求,当大批量存在这些需求时,编写对应的sql查询语句会比较繁琐。


技术实现思路

1、本专利技术的目的在于提供一种动态生成sql语句的方法用于解决上述问题。

2、为实现上述目的,本专利技术采用以下技术方案:

3、一种动态生成sql语句的方法,包括以下步骤:

4、s1、创建jsonarray条件,所述jsonarray条件包括若干元素,每个所述元素的组成内容包括连接关系、条件排序及条件主体,其中,所述条件主体包括属性、值及值应用方式;

5、s2、枚举所述值应用方式与sql关键字对应关系,并根据检测出的对应关系填充sql关键字和值;

6、s3、获取所述jsonarray条件内容,查找所述jsonarray条件的sql关键字,取出所述jsonarray条件里元素的属性及值,并和对应的sql关键字拼接生成sql语句。

7、优选地,步骤s3具体为:接收所述jsonarray条件,遍历所述jsonarray条件内容,按照条件排序作为顺序,解析出元素中的属性作为对象,然后根据所述值应用方式查到对应的sql关键字,取出所述jsonarray条件里元素的属性及值,并和对应的sql关键字拼接生成sql语句,从而实现将jsonarray条件转换成sql语句。

8、优选地,所述值应用方式枚举包括equal=等于、notequal=不等于、contain=包含、notcontain=不包含、empty=为空、notempty=不为空、hasvalue=有值、novalue=没有值。

9、采用上述技术方案后,本专利技术与
技术介绍
相比,具有如下有益效果:

10、本专利技术提供一种动态生成sql语句的方法,根据jsonarray条件自动生成sql查询语句,减少sql查询语句编写的繁琐性,效率高,可根据实际需求快速自动生成,避免多余的重复性工作。

本文档来自技高网...

【技术保护点】

1.一种动态生成SQL语句的方法,其特征在于:包括以下步骤:

2.如权利要求1所述的一种动态生成SQL语句的方法,其特征在于:步骤S3具体为:接收所述JSONArray条件,遍历所述JSONArray条件内容,按照条件排序作为顺序,解析出元素中的属性作为对象,然后根据所述值应用方式查到对应的SQL关键字,取出所述JSONArray条件里元素的属性及值,并和对应的SQL关键字拼接生成SQL语句,从而实现将JSONArray条件转换成SQL语句。

3.如权利要求1所述的一种动态生成SQL语句的方法,其特征在于:所述值应用方式枚举包括equal=等于、notEqual=不等于、contain=包含、notContain=不包含、empty=为空、notEmpty=不为空、hasValue=有值、noValue=没有值。

【技术特征摘要】

1.一种动态生成sql语句的方法,其特征在于:包括以下步骤:

2.如权利要求1所述的一种动态生成sql语句的方法,其特征在于:步骤s3具体为:接收所述jsonarray条件,遍历所述jsonarray条件内容,按照条件排序作为顺序,解析出元素中的属性作为对象,然后根据所述值应用方式查到对应的sql关键字,取出所述jsonarray条件里元素的属性及值,并和对应...

【专利技术属性】
技术研发人员:陈碧勇方敏申志奎
申请(专利权)人:厦门南讯股份有限公司
类型:发明
国别省市:

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

1