CN117688023A - 一种基于json通用数据操作sql数据库的方法及服务系统 - Google Patents
一种基于json通用数据操作sql数据库的方法及服务系统 Download PDFInfo
- Publication number
- CN117688023A CN117688023A CN202211095176.0A CN202211095176A CN117688023A CN 117688023 A CN117688023 A CN 117688023A CN 202211095176 A CN202211095176 A CN 202211095176A CN 117688023 A CN117688023 A CN 117688023A
- Authority
- CN
- China
- Prior art keywords
- sql
- data
- json
- request data
- statement
- 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 32
- 238000013507 mapping Methods 0.000 claims abstract description 26
- 238000012216 screening Methods 0.000 claims description 21
- 238000000547 structure data Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 239000000243 solution Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于JSON通用数据操作SQL数据库的方法及服务系统,通过接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。相比于现有技术,本发明建立了从json到sql语句的映射,将规范化的json数据结构转化为合法的sql语句,大幅度提高业务sql语句的集中管理维护的便利性,减少业务代码的冗余度,而且由于自动对用户输入部分进行转换,极大提高了系统安全性。
Description
技术领域
本发明涉及数据库处理技术领域,具体而言,涉及一种基于JSON通用数据操作SQL数据库的方法及服务系统。
背景技术
在车联网及传统互联网后台服务中,依然有许多追求高性能的服务采用C++语言实现。当业务中涉及写常规关系型数据库如mysql时,往往直接采用C库的mysql客户端,而在业务层面上需要手动拼接mysql语句传给mysql服务器。在这种情况下,不管是用C风格的类printf语句,或是C++的标准字符串std::string的重载相加(operator+)操作,都会在服务迭代过程中带来管理与维护上的不便。
现有技术,一般采用手动拼接sql语句的方式,这样的方式只在简单测试程序具有简单直接的便利性。而在实际业务开发中,让sql语句与C++代码混在一起,可读性与或维护性比较差,在需要修改sql语句或参数中需要非常谨慎。
发明内容
有鉴于此,本发明实施例的目的在于提供一种从json数据结构中自动生成mysql语句的办法,可大幅度提高业务sql语句的集中管理维护的便利性,减少业务代码的冗余度,而且由于自动对用户输入部分进行转义避免sql注入的可能,也极大提高了系统安全性。
本发明的第一方面提供了一种基于JSON通用数据操作SQL数据库的方法,应用于车联网的接入层服务系统,所述方法包括:
S1,接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;
S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;
S3,将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。
进一步,所述S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据,包括:
根据预先构建的json到sql语句的映射关系,将外部请求数据填充到sql模板对应的语句结构中;
将外部请求数据中的json语句转换为sql语句,并根据转换后的sql语句生成第一执行数据。
进一步,所述S1之前还包括:预先构建json到sql语句的映射关系;
所述sql模板包括一个或多个sql语句结构;所述sql语句结构包括insert语句结构、update语句结构、select语句结构、delete语句结构;
所述S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据,还包括:
获取请求数据的json结构数据的子结点,并根据json到sql语句的映射关系依次将所述子结点的数据结构转换成sql语句,将各子结点转换后的sql语句执行拼接,以生成第一执行数据。
进一步,所述insert语句结构包括目标表名、一组字段名及其相应的值,采用jsonobject的key-value对来表达字段名相应的值;
所述update语句结构包括目标表名、筛选条件、一组字段名及其相应的值;所述select语句结构包括目标表名、筛选条件、查询对象、字段名;所述delete语句结构包括目标表名、筛选条件。
此外,本发明还提出一种基于JSON通用数据操作SQL数据库的服务系统,所述服务系统为车联网的接入层服务系统,所述系统包括接收模块、生成模块、以及发送与执行模块;其中:
所述接收模块,接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;
所述生成模块,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;
所述发送与执行模块,将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。
进一步,所述生成模块,还用于:
根据预先构建的json到sql语句的映射关系,将外部请求数据填充到sql模板对应的语句结构中;
将外部请求数据中的json语句转换为sql语句,并根据转换后的sql语句生成第一执行数据。
进一步,所述系统还包括构建模块,用于预先构建json到sql语句的映射关系;
所述sql模板包括一个或多个sql语句结构;所述sql语句结构包括insert语句结构、update语句结构、select语句结构、delete语句结构;
根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据,还包括:
获取请求数据的json结构数据的子结点,并根据json到sql语句的映射关系依次将所述子结点的数据结构转换成sql语句,将各子结点转换后的sql语句执行拼接,以生成第一执行数据。
进一步,所述insert语句结构包括目标表名、一组字段名及其相应的值,采用jsonobject的key-value对来表达字段名相应的值;
所述update语句结构包括目标表名、筛选条件、一组字段名及其相应的值;所述select语句结构包括目标表名、筛选条件、查询对象、字段名;所述delete语句结构包括目标表名、筛选条件。
此外,本发明第三方面还提供一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;其特征在于,所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的基于JSON通用数据操作SQL数据库的方法步骤。
此外,本发明第四方面还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的基于JSON通用数据操作SQL数据库的方法步骤。
本发明的方案中,通过接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。相比于现有技术,本发明建立了从json到sql语句的映射,将规范化的json数据结构转化为合法的sql语句,大幅度提高业务sql语句的集中管理维护的便利性,减少业务代码的冗余度,而且由于自动对用户输入部分进行转换,极大提高了系统安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例现有技术的现有SQL语句生成方法示意图;
图2是本发明实施例1公开的基于JSON通用数据操作SQL数据库的方法流程示意图;
图3是本发明实施例1公开的常规业务sql语句类型示意图;
图4是本发明实施例1公开的insert语句结构示意图;
图5是本发明实施例1公开的update语句结构示意图;
图6是本发明实施例1公开的select语句结构示意图;
图7是本发明实施例1公开的delete语句结构示意图;
图8是本发明实施例1公开的where句型结构示意图;
图9是本发明实施例1公开的总体执行流程图;
图10是本发明实施例2公开的服务系统模块结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
参见附图1,现有技术手动拼接sql语句的方式,只在简单测试程序具有简单直接的便利性。而在实际业务开发中,让sql语句与C++代码混在一起,可读性与或维护性比较差,在需要修改sql语句或参数中需要非常谨慎。
本实施例要解决的业务sql句式模板与C++逻辑代码的解耦分离,使得业务sql能够集中管理,同时能高效安全地生成sql语句。由于生成的是中立的sql语句,它也object不限定mysql服务器,从而有相当的可移植性。比如在车联网的接入层服务系统,除了与车端的特定的通讯协议外,也往往还需要对其他管理系统暴露http api,这些api大体是配置或操作数据库的,大量业务逻辑涉及sql,那就可利用本实施例如下提供的技术思路简化以sql操作为主的业务需求实现。
本实施例,将一种规范化的json数据结构(object)转化为合法的sql语句,可以认为建立了从json到sql语句的映射,也可以认为是将符合业务规范schema的json子集“编译”为sql语言的过程。
实施例1
请参阅图2,图2是本发明实施例公开的一种基于JSON通用数据操作SQL数据库的方法的流程示意图。如图2所示,本发明实施例的一种基于JSON通用数据操作SQL数据库的方法,包括:
S1,接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构。
具体地,本实施例,外部请求数据可以是应用程序编程接口API的请求数据,比如通过对管理系统暴露http api业务,则需要将生成mysql语句传给mysql服务器。
优选的,所述S1之前还包括:预先构建json到sql语句的映射关系;所述sql语句包括insert语句结构、update语句结构、select语句结构、delete语句结构。
其中,insert语句结构包括目标表名、一组字段名及其相应的值,采用jsonobject的key-value对来表达字段名相应的值;所述update语句结构包括目标表名、筛选条件、一组字段名及其相应的值;所述select语句结构包括目标表名、筛选条件、查询对象、字段名;所述delete语句结构包括目标表名、筛选条件。
具体地,本实施例,根据常规业务需求,涉及的sql语句大体可分为四种,即典型的insert、update、select、delete语句,如图3所示为本实施例常规业务sql语句类型,也即常说的CRUD业务,其中,每种业务对应不同的json root下的key值。
进一步,需要对insert语句结构、update语句结构、select语句结构、delete语句结构的功能结构执行描述。
1.insert语句:如图4所示是最基本的一种insert语句结构,其包括目标表名table、一组字段名field1…及其相应的值value。典型的insert语句包含目标表名,及一组字段名及其相应的值,而后者可以很直观地用json object的key-value对来表达这种数据。
2.update语句:update语句结构包括目标表名table、where筛选条件、一组字段名field1…及其相应的值value。典型的update业务与insert类似,但多了一个where筛选条件,以限定只更新哪些行。于是其对应的json树结构类似图5所示。其中,where结点涉及另一层复杂结构,在下面的select句型将更常用,因此将留于后文详述。
3.select语句:如图6所示为select句型结构图,所述select语句结构包括目标表名、where筛选条件、查询对象、字段名。select查询可能是最常用的业务了,但从宏观上抽象其模型也可以是简单的,就是根据指定条件查询一组字段,其返回结果也可用json表达,就是由这些指定字段的键值对object构成的数组。
4.delete语句:如图7所示为delete句型结构图。delete语句是最简单的,但实际业务应谨慎使用,必须加上where条件,有些数据库表设计不允许删除,而改用update标记某个特殊字段为删除状态。
5.where筛选条件子句:如上update语句、select语句、delete语句均包括where筛选条件子句。其中,如图8所示为本实施例的where句型,最常用的where条件,是多个字段等于某些值的逻辑与,这在json中便构成where结点的第一层键值对。如果对某个字段不是用=判断,则在其下额外加一层结构,用比较操作符作为键,而用比较值作为那子键的值。同理,如果真有需要逻辑或的判断,则加一个特殊的or键,在其下的各字段比较就是逻辑或的组合。
S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据。
进一步,所述S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据,包括:根据预先构建的json到sql语句的映射关系,将外部请求数据填充到sql模板对应的语句结构中;将外部请求数据中的json语句转换为sql语句,并根据转换后的sql语句生成第一执行数据。
所述S2,基于所述请求数据,根据json path选择所需的数据,填充到json化的sql模板中,以生成第一执行数据,还包括:获取请求数据的json结构数据的子结点,并根据json到sql语句的映射关系依次将所述子结点的数据结构转换成sql语句,将各子结点转换后的sql语句执行拼接,以生成第一执行数据。
具体地,本实施例,如待转换的JSON数据结构中的json语句为单个结点,比如:
则,本实施例,根据映射关系,将其自动转换为sql语句:
"insert":"INSERT INTO t_name SET f_1='val1',f_2=22"。
或者,单个结点的json语句可以为:
则,本实施例,根据映射关系以及sql模板,将其自动转换为:
"update":"UPDATE t_name SET f_1='val1',f_2=22WHERE 1=1AND id=1001"。
进一步,本实施例,而,若json语句可以包括多个结点,比如,对于json数据结构:
如上的json结构中的每个子结点,可以转化为如下相对的sql字符串:
S3,将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。
具体地,本实施例,将转换成功的sql字符串,生成第一执行数据,并打包发送至mysql服务器,从而便于后续的mysql服务器执行相应的sql字符串,以响应json数据结构的业务请求。
如图9所示为本实施例的总体执行流程图,从外部输入数据填充json数据结构。在实用程序中,不管是原生的sql语句,还是本实施例提倡的json化的结构,都不可能写死的,而是需要从外部提供部分数据,例如api的请求数据。所以还有关键的一步,只要外部请求输入也是json化的结构数据,本发明能够根据json path选择所需的数据,填充到json化的sql模板中,最终生成完整的sql语句,得以正确执行。
本实施例,与现有技术相比,通过接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;基于所述请求数据,根据json path选择所需的数据,填充到json化的sql模板中,填充到insert语句结构之类的值里面去,这样是为了前后端解耦,可以不暴露后端的数据库表结构(如表名、字段名),以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。通过建立了从json到sql语句的映射,将规范化的json数据结构转化为合法的sql语句,大幅度提高业务sql语句的集中管理维护的便利性,减少业务代码的冗余度,而且由于自动对用户输入部分进行转换,极大提高了系统安全性。
需要说明的是,本实施例,如果是完全内部使用,前端直接使用“insert语句结构、update语句结构、select语句结构、delete语句结构”这几种json格式也行的。但如果给外部使用,就可以再加一层转化。这几种sql模板是后端预设配置的,可以不给外人所知,然后根据前端请求的具体数据填充值。如果给外部提供api,要考虑安全性的话,那些模板结构是对外隐藏的,只要再加一个过程,用json path选择外部用户的输入的常规json数据,填到模板结构的值域中。这样对外部用户也更友好。
实施例2
本实施例还提供一种基于JSON通用数据操作SQL数据库的服务系统,所述服务系统为车联网的接入层服务系统,如图10所示,所述系统包括接收模块10、生成模块20、以及发送与执行模块30;其中:
所述接收模块10,接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;
所述生成模块20,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;
所述发送与执行模块30,将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。
进一步,所述生成模块20,还用于:
根据预先构建的json到sql语句的映射关系,将外部请求数据填充到sql模板对应的语句结构中;
将外部请求数据中的json语句转换为sql语句,并根据转换后的sql语句生成第一执行数据。
进一步,所述系统还包括构建模块40,用于预先构建json到sql语句的映射关系;
所述sql模板包括一个或多个sql语句结构;所述sql语句结构包括insert语句结构、update语句结构、select语句结构、delete语句结构;
根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据,还包括:获取请求数据的json结构数据的子结点,并根据json到sql语句的映射关系依次将所述子结点的数据结构转换成sql语句,将各子结点转换后的sql语句执行拼接,以生成第一执行数据。
进一步,所述insert语句结构包括目标表名、一组字段名及其相应的值,采用jsonobject的key-value对来表达字段名相应的值;
所述update语句结构包括目标表名、筛选条件、一组字段名及其相应的值;所述select语句结构包括目标表名、筛选条件、查询对象、字段名;所述delete语句结构包括目标表名、筛选条件。
此外,本实施例还提供一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的基于JSON通用数据操作SQL数据库的方法步骤。
此外,本实施例还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的基于JSON通用数据操作SQL数据库的方法步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显然是本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于JSON通用数据操作SQL数据库的方法,应用于车联网的接入层服务系统,其特征在于,所述方法包括:
S1,接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;
S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;
S3,将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。
2.根据权利要求1所述的基于JSON通用数据操作SQL数据库的方法,其特征在于,所述S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据,包括:
根据预先构建的json到sql语句的映射关系,将外部请求数据填充到sql模板对应的语句结构中;
将外部请求数据中的json语句转换为sql语句,并根据转换后的sql语句生成第一执行数据。
3.根据权利要求2所述的基于JSON通用数据操作SQL数据库的方法,其特征在于,所述S1之前还包括:预先构建json到sql语句的映射关系;
所述sql模板包括一个或多个sql语句结构;所述sql语句结构包括insert语句结构、update语句结构、select语句结构、delete语句结构;
所述S2,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据,还包括:
获取请求数据的json结构数据的子结点,并根据json到sql语句的映射关系依次将所述子结点的数据结构转换成sql语句,将各子结点转换后的sql语句执行拼接,以生成第一执行数据。
4.根据权利要求3所述的基于JSON通用数据操作SQL数据库的方法,其特征在于,所述insert语句结构包括目标表名、一组字段名及其相应的值,采用json object的key-value对来表达字段名相应的值;
所述update语句结构包括目标表名、筛选条件、一组字段名及其相应的值;所述select语句结构包括目标表名、筛选条件、查询对象、字段名;所述delete语句结构包括目标表名、筛选条件。
5.一种基于JSON通用数据操作SQL数据库的服务系统,所述服务系统为车联网的接入层服务系统,其特征在于,所述系统包括接收模块、生成模块、以及发送与执行模块;其中:
所述接收模块,接收外部请求数据,所述外部请求数据包括应用程序编程接口API的请求数据,所述请求数据为JSON数据结构;
所述生成模块,根据所述外部请求数据,填充到预先设置的sql模板中,以生成第一执行数据;所述第一执行数据为sql语句组成的执行数据;
所述发送与执行模块,将所述第一执行数据发送至mysql服务器,并基于mysql服务器执行所述第一执行数据。
6.根据权利要求5所述的基于JSON通用数据操作SQL数据库的服务系统,其特征在于,所述生成模块,还用于:
根据预先构建的json到sql语句的映射关系,将外部请求数据填充到sql模板对应的语句结构中;
将外部请求数据中的json语句转换为sql语句,并根据转换后的sql语句生成第一执行数据。
7.根据权利要求6所述的基于JSON通用数据操作SQL数据库的服务系统,其特征在于,所述系统还包括构建模块,用于预先构建json到sql语句的映射关系;
所述sql模板包括一个或多个sql语句结构;所述sql语句结构包括insert语句结构、update语句结构、select语句结构、delete语句结构;
所述生成模块,还用于:获取请求数据的json结构数据的子结点,并根据json到sql语句的映射关系依次将所述子结点的数据结构转换成sql语句,将各子结点转换后的sql语句执行拼接,以生成第一执行数据。
8.根据权利要求7所述的基于JSON通用数据操作SQL数据库的服务系统,其特征在于,所述insert语句结构包括目标表名、一组字段名及其相应的值,采用json object的key-value对来表达字段名相应的值;
所述update语句结构包括目标表名、筛选条件、一组字段名及其相应的值;所述select语句结构包括目标表名、筛选条件、查询对象、字段名;所述delete语句结构包括目标表名、筛选条件。
9.一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;其特征在于,所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上1-4任一项所述的基于JSON通用数据操作SQL数据库的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至4任一项所述的基于JSON通用数据操作SQL数据库的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211095176.0A CN117688023A (zh) | 2022-09-05 | 2022-09-05 | 一种基于json通用数据操作sql数据库的方法及服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211095176.0A CN117688023A (zh) | 2022-09-05 | 2022-09-05 | 一种基于json通用数据操作sql数据库的方法及服务系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117688023A true CN117688023A (zh) | 2024-03-12 |
Family
ID=90135900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211095176.0A Pending CN117688023A (zh) | 2022-09-05 | 2022-09-05 | 一种基于json通用数据操作sql数据库的方法及服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117688023A (zh) |
-
2022
- 2022-09-05 CN CN202211095176.0A patent/CN117688023A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558434B2 (en) | Rule-based automatic class generation from a JSON message | |
CN110032604B (zh) | 数据存储装置、转译装置及数据库访问方法 | |
US10417221B2 (en) | Expansion of a tree hierarchy | |
US7185317B2 (en) | Logical data modeling and integrated application framework | |
US7779050B2 (en) | Method, apparatus, and system for data modeling and processing | |
US20120290620A1 (en) | Query Template Definition and Transformation | |
US20040249830A1 (en) | Database object script generation method and system | |
US7464071B2 (en) | System and method for forcing a query execution plan | |
Dimou et al. | Mapping hierarchical sources into RDF using the RML mapping language | |
US8037039B2 (en) | Runtime class database operation | |
US7720831B2 (en) | Handling multi-dimensional data including writeback data | |
CN110837492A (zh) | 一种多源数据统一sql提供数据服务的方法 | |
US10296505B2 (en) | Framework for joining datasets | |
US9171051B2 (en) | Data definition language (DDL) expression annotation | |
US7877417B2 (en) | Method and apparatus for exchanging data with a database | |
US20090094577A1 (en) | Generating data access operations based on a data model using a data services model | |
CN103004135B (zh) | 访问控制方法及访问控制服务器 | |
CN110209699B (zh) | 一种基于openEHR Composition模板的数据接口动态生成与执行方法 | |
CN115114325B (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN117688023A (zh) | 一种基于json通用数据操作sql数据库的方法及服务系统 | |
CN116627448A (zh) | 一种创建微服务的方法及相关设备 | |
US20040172382A1 (en) | System and method for generating a request for information about selected objects | |
CN113342325A (zh) | 可视化建模方法、系统、电子设备及存储介质 | |
Stoica | R2PG-DM: a direct mapping from relational databases to property graphs | |
WO2023151239A1 (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 |