一种生成及执行SQL语句的方法和系统技术方案

技术编号:8862362 阅读:171 留言:0更新日期:2013-06-28 01:33
本申请公开了一种生成及执行SQL语句的方法和系统,所述方法应用在XML_SQL解析器中,所述XML_SQL解析器与类型不同的至少两个数据库相连接,所述方法包括:接收用户输入的XML_SQL语句,其中所述XML_SQL语句至少包括有XML控制标签,所述控制标签至少包括有所述至少两个数据库中的一个特定数据库的数据库地址,数据库类型,数据库驱动和数据库语言;判断所述XML_SQL语句是否正确;在所述XML_SQL语句正确时,至少基于所述控制标签,生成所述特定数据库的可执行SQL语句,以供所述特定数据库执行。通过上述技术方法解决了SQL语句不能同时适用于多个类型不同的数据库的问题。

【技术实现步骤摘要】
一种生成及执行SQL语句的方法和系统
本申请涉及计算机数据库领域,尤其涉及一种生成及执行SQL语句的方法和系统。
技术介绍
随着近些年信息化的加快,数据库的应用越来越普遍。在现行的数据库系统中,不同的数据库对标准的sql语言的支持是不尽相同的,不同的数据库往往都会出于某些商业目的或者性能上的要求,对标准的sql语言做一些扩展。本申请人在实现本申请实施例的过程中,发现现有技术存在如下技术问题:一、当用户在书写了一个sql语句时,难以保证其跨数据库性。比如,在对时间的处理上,oracle数据库和sqlserver数据库就有很大的不同,特别地,若数据库中有一个信息拥有时间记录,在对其进行增加,修改,查询过程时,两种类型数据库所使用的sql语句差别就更加明显。二、当需要将数据库的查询结果做应用级别的展示的时候,往往需要对标准的sql语句做个性化的开发。比如,将查询结果保存为XML,通过web服务发送给服务调用者。或者将查询结果保存为微软office支持的word文件、excel文件、cvs文件等等。而标准的sql语句不却能够满足其个性化开发的需要。可见,现有技术中的sql语句不能够实现跨数据库使用,同时也不能够适用个性化的开发应用环境。
技术实现思路
有鉴于此,本申请提供一种生成SQL语句的方法,用以解决现有技术中存在SQL语句不能实现跨数据库使用的问题。一方面,通过本申请的一个实施例,提供了如下技术方案:一种生成SQL语句的方法,应用在XML_SQL解析器中,所述XML_SQL解析器与类型不同的至少两个数据库相连接,所述方法包括:接收用户输入的XML_SQL语句,其中所述XML_SQL语句至少包括有XML控制标签,所述控制标签至少包括有所述至少两个数据库中的一个特定数据库的数据库地址,数据库类型,数据库驱动和数据库语言;判断所述XML_SQL语句是否正确;在所述XML_SQL语句正确时,至少基于所述控制标签,生成所述特定数据库的可执行SQL语句,以供所述特定数据库执行。可选的,在所述生成所述特定数据库可执行的SQL语句之后,所述方法还包括:接收所述特定数据库执行所述可执行SQL语句而获得的执行结果。可选的,所述XML_SQL语句还包括:结果标签,用来描述所述特定数据库通过执行所述可执行SQL语句而获得的执行结果的文档格式。可选的,所述结果标签中还包括有所述执行结果的保存路径,所述保存路径为:所述特定数据库本地路径或远程路径。可选的,所述接收所述特定数据库执行所述可执行SQL语句而获得的执行结果,具体为:接收所述特定数据库执行所述可执行SQL语句而获得的以所述文档格式保存的文件。可选的,在所述接收所述特定数据库执行所述可执行SQL语句而获得的以所述文档格式保存的文件之后,所述方法还包括:将所述文件发送到所述保存路径。可选的,所述XML_SQL语句还包括:UI标签,用来描述所述XML_SQL解析器与所述特定数据库间的用户操作。可选的,所述UI标签具有一个value属性。另一方面,通过本申请的另一实施例提供了如下技术方案:一种执行SQL语句的方法,所述方法应用在一特定数据库中,所述特定数据库为至少两个数据库中的一个数据库,其中,所述至少两个数据库与一XML_SQL解析器连接,所述至少两个数据库为不同类型的数据库,所述方法包括:接收所述XML_SQL解析器生成的与所述特定数据库对应的SQL语句;执行所述SQL语句,获得执行结果。可选的,所述SQL语句由所述XML_SQL解析器基于用户输入的XML_SQL语句而生成。可选的,所述XML_SQL语句包括:结果标签,用来描述所述特定数据库通过执行所述可执行SQL语句而获得的执行结果的文档格式。可选的,在所述执行所述SQL语句,获得执行结果之后,所述方法还包括:将所述执行结果保存为所述文档格式的文件;将所述文件发送给所述XML_SQL解析器。另一方面,本申请还提供过来如下技术方案:一种生成SQL语句的系统,所述系统包括有XML_SQL解析器,所述XML_SQL解析器与类型不同的至少两个数据库相连接,所述系统包括:第一接收模块,用于接收用户输入的XML_SQL语句,其中所述XML_SQL语句至少包括有XML控制标签,所述控制标签至少包括有所述至少两个数据库中的一个特定数据库的数据库地址,数据库类型,数据库驱动和数据库语言;判断模块,用于判断所述XML_SQL语句是否正确;生成模块,用于在所述XML_SQL语句正确时,至少基于所述控制标签,生成所述特定数据库的可执行的SQL语句,以供所述特定数据库执行。可选的,所述系统还包括:第二接收模块,用于在所述生成所述特定数据库可执行的SQL语句之后,接收所述特定数据库执行所述可执行SQL语句而获得的执行结果。再一方面,本申请还提供了如下技术方案:一种执行SQL语句的系统,应用在一特定数据库中,所述特定数据库为至少两个数据库中的一个数据库,其中,所述至少两个数据库与一XML_SQL解析器连接,所述至少两个数据库为不同类型的数据库,所述系统包括:接收模块,用于接收所述XML_SQL解析器生成的与所述特定数据库对应的SQL语句;获得模块,用于执行所述SQL语句,获得执行结果。可选的,所述XML_SQL语句包括:结果标签,用来描述所述特定数据库通过执行所述可执行SQL语句而获得的执行结果的文档格式。可选的,所述系统还包括:保存模块,用于在所述执行所述SQL语句,获得执行结果之后,将所述执行结果保存为所述文档格式的文件;发送模块,用于将所述文件发送给所述XML_SQL解析器。上述技术方案中的一个或多个技术方案,具有如下技术效果或优点:一、通过采用本申请中生成的SQL语句的方法,解决了现有技术中标准SQL语句不能兼容类型不同的数据库的技术问题,从而实现了跨数据库类型的操作。二、进一步的,由于生成的SQL语句结合了XML语言中的优势,使得生成的SQL语句能够适应于一些有特殊性能要求的场景,扩展了SQL语句的应用范围。附图说明图1为本申请实施例中生成SQL语句的方法流程图;图2为本申请实施例中执行SQL语句的方法流程图;图3为本申请实施例中生成SQL语句的系统模块图;图4为本申请实施例中执行SQL语句的系统模块图。具体实施方式下面结合各个附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。请参考图1,为本申请实施例中生成SQL语句的方法流程图;步骤100,接收用户输入的XML_SQL语句;在具体的实施过程中,所述XML_SQL语句至少包括有XML控制标签,在所述控制标签中,所述控制标签至少包括有两个数据库中的一个特定数据库的数据库地址,数据库类型,数据库驱动和数据库语言等信息,下面以一个具体的控制标签作为示例,进行说明。控制标签示例一:<databaseurl=“192.168.18.1”type=“oracle”driver=“oraclejdbc.driver.OracleDriver”language=“java”resultsize=“1000”>orcl</database>;在此标签中数据库的地址为192.168.18.1,数据库类型为oracle,驱动为orac本文档来自技高网...
一种生成及执行SQL语句的方法和系统

【技术保护点】
一种生成SQL语句的方法,应用在XML_SQL解析器中,所述XML_SQL解析器与类型不同的至少两个数据库相连接,其特征在于,所述方法包括:接收用户输入的XML_SQL语句,其中所述XML_SQL语句至少包括有XML控制标签,所述控制标签至少包括有所述至少两个数据库中的一个特定数据库的数据库地址,数据库类型,数据库驱动和数据库语言;判断所述XML_SQL语句是否正确;在所述XML_SQL语句正确时,至少基于所述控制标签,生成所述特定数据库的可执行SQL语句,以供所述特定数据库执行。

【技术特征摘要】
1.一种生成SQL语句的方法,应用在XML_SQL解析器中,所述XML_SQL解析器与类型不同的至少两个数据库相连接,其特征在于,所述方法包括:接收用户输入的XML_SQL语句,其中所述XML_SQL语句至少包括有XML控制标签,所述控制标签至少包括有所述至少两个数据库中的一个特定数据库的数据库地址,数据库类型,数据库驱动和数据库语言,其中,所述XML_SQL语句还包括:UI标签,用来描述所述XML_SQL解析器与所述特定数据库间的用户操作,结果标签,用来描述所述特定数据库通过执行所述可执行SQL语句而获得的执行结果的文档格式;判断所述XML_SQL语句是否正确;在所述XML_SQL语句正确时,至少基于所述控制标签,生成所述特定数据库的可执行SQL语句,以供所述特定数据库执行。2.如权利要求1所述的方法,其特征在于,在所述生成所述特定数据库可执行的SQL语句之后,所述方法还包括:接收所述特定数据库执行所述可执行SQL语句而获得的执行结果。3.如权利要求1所述的方法,其特征在于,所述结果标签中还包括有所述执行结果的保存路径,所述保存路径为:所述特定数据库本地路径或远程路径。4.如权利要求3所述的方法,其特征在于,所述接收所述特定数据库执行所述可执行SQL语句而获得的执行结果,具体为:接收所述特定数据库执行所述可执行SQL语句而获得的以所述文档格式保存的文件。5.如权利要求4所述的方法,其特征在于,在所述接收所述特定数据库执行所述可执行SQL语句而获得的以所述文档格式保存的文件之后,所述方法还包括:将所述文件发送到所述保存路径。6.如权利要求1所述的方法,其特征在于,所述UI标签具有一个value属性。7.一种执行SQL语句的方法,应用在一特定数据库中,所述特定数据库为至少两个数据库中的一个数据库,其中,所述至少两个数据库与一XML_SQL解析器连接,所述至少两个数据库为不同类型的数据库,其特征在于,所述方法包括:接收所述XML_SQL解析器生成的与所述特定数据库对应的SQL语句,所述SQL语句由所述XML_SQL解析器基于用户输入的XML_SQL语句而生成,其中,所述XML_SQL语句还包括:UI标签,用来描述所述XML_SQL解析器与所述特定数据库间的用户操作,结果标签,用来描述所述特定数据库通过执行可执行SQL语句而获得的执行结果的文档格...

【专利技术属性】
技术研发人员:毕继安
申请(专利权)人:北大方正集团有限公司北京北大方正电子有限公司
类型:发明
国别省市:

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

1