CN100555288C - 一种访问不同类型数据库的方法和*** - Google Patents
一种访问不同类型数据库的方法和*** Download PDFInfo
- Publication number
- CN100555288C CN100555288C CNB2007101876802A CN200710187680A CN100555288C CN 100555288 C CN100555288 C CN 100555288C CN B2007101876802 A CNB2007101876802 A CN B2007101876802A CN 200710187680 A CN200710187680 A CN 200710187680A CN 100555288 C CN100555288 C CN 100555288C
- Authority
- CN
- China
- Prior art keywords
- sql statement
- database
- statement
- target database
- general
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种访问不同类型数据库的方法,包括步骤:接收与目标数据库无关的通用SQL语句;判断目标数据库类型;根据目标数据库类型将通用SQL语句翻译成在特定目标数据库中执行的SQL语句;发送所述翻译的SQL语句至特定目标数据库。通过所述方法可以屏蔽不同数据库的差异,应用程序不需要关心所运行的目标数据库类型。本发明还提供了一种访问不同类型数据库的***。
Description
技术领域
本发明涉及数据库领域,特别是涉及一种访问不同类型数据库的方法和***。
背景技术
现有的数据库产品在实现标准的SQL语法之外还支持各自特有的SQL语法,这些SQL语法是不通用的。举个例子:在SQL SERVER中支持下面的语句:SELECT TOP 100*FROM t,但在DB2下由于不支持TOP关键字,所以该语句不能被正确编译执行而必须写成等效的语句:SELECT*FROM tFETCH FIRST 100 ROWS ONLY。可以看出,实现同样的功能,即从表t中选择头100条记录,在SQL SERVER与DB2中都是可以实现的,但实现的方式即提交的查询语句却不并相同。再比如:DB2支持下面的语句:update t as t1...而该语句在SQL SERVER中执行却会报语法不支持错误。这种差异给应用产品带来了不便:一个在某种数据库产品中运行良好的应用,不一定能够在其它数据库产品中正常运行。
部分应用通过O/R Mapping工具来试图屏蔽各数据库差异,如hibernate。使用这些O/R Mapping工具时,开发人员提交的是对象化的语句,工具负责生成适合在特定数据库上运行的结构化的SQL语句,它们采用翻译对象化语句的方式来屏蔽各数据库之间的差异。
过对象化语句翻译生成SQL虽然解决了各数据库差异带来的问题,但它存在以下缺点:
1、限制SQL使用的灵活性:对象化语句与结构化语句有本质的不同,而现在的数据库***基本上都是关系数据库,这种现状决定了对象化语句无法象结构化语句那样灵活,无法与数据库***很好的结合。
2、很难描述复杂的SQL语句:开发人员提交的是对象化语句,而生成的SQL语句却是结构化语句。这种差异导致工具本身无法处理复杂的SQL语句,从另一方面来说,开发人员试图将复杂的关联语句转为对象化的语句将是件困难的事。
3、要使用某数据库特有的语句必须通过接口来进行。一般工具都会提供两个接口,一个用于处理对象化语句,另一个用于处理结构化语句,即数据库特有的语句,这种语句的特点是它不需要工具翻译而是直接提交到数据库。两个接口在使用过程中给开发人员造成了不小的麻烦,必须选择合适的接口,并且在修改语句的时候必须同步改变接口。
发明内容
本发明所要解决的技术问题是提供一种访问不同类型数据库的方法和***,通过将结构化的通用SQL语句翻译成适合在特定目标数据库运行SQL语句,屏蔽各种数据库之间的差异。
为了解决上述问题,本发明公开了一种访问不同类型数据库的方法,包括步骤:
接收与目标数据库无关的通用SQL语句,所述通用SQL语句具有实际含义;
判断目标数据库类型;
预置相应语法,对接收的通用SQL语句进行语法解析,根据语法解析的结果输出在特定目标数据库中执行的SQL语句;
发送所述输出的SQL语句至特定目标数据库。
进一步,还包括步骤:
目标数据库执行所述SQL语句,返回执行结果。
优选的,在所述判断目标数据库类型后,所述预置相应语法前,还包括步骤:
判断目标数据库是否支持所述通用SQL语句的功能,如不支持,则:
在目标数据库中预置实现所述通用SQL语句功能的存储过程;
预置相应语法,对接收的通用SQL语句进行语法解析,根据语法解析的结果输出所述存储过程的调用语句;
发送所述输出的存储过程的调用语句至特定目标数据库,流程结束。
其中,所述语法解析具体步骤为:
根据语法将通用SQL语句解析成语法树;
所述输出在特定目标数据库中执行的SQL语句的具体步骤为:
从语法树信息中依次获取标识,输出在特定目标数据库中执行的SQL语句。
优先的,在所述接收通用SQL语句步骤后,且在所述判断目标数据库类型前,还包括:
判断所述通用SQL语句是否以/*dialect*/为前缀,否,则进入下一步,是,则直接发送所述SQL语句至特定目标数据库。
本发明还公开了一种访问不同类型数据库的***,包括:
接收单元,用于接收与目标数据库无关的通用SQL语句,所述通用SQL语句具有实际含义;
第一判断单元,用于判断目标数据库类型;
预置单元,用于预置相应语法;
语法树解析单元,用于根据语法将通用SQL语句解析成语法树;
输出单元,用于从语法树信息中依次获取标识,输出在特定目标数据库中执行的SQL语句;
发送单元,用于发送所述输出的SQL语句至特定目标数据库。
优选的,还包括:
返回单元,用于在目标数据库执行SQL语句后,返回执行结果。
优选的,还包括:
第二判断单元,用于判断目标数据库是否支持通用SQL语句的功能,如不支持,则:在目标数据库中预置实现所述通用SQL语句功能的存储过程;预置相应语法,对接收的通用SQL语句进行语法解析,根据语法解析的结果输出所述存储过程的调用语句;发送所述输出的存储过程的调用语句至特定目标数据库。
优选的,还包括:
第三判断单元,用于判断通用SQL语句是否以/*dialect*/为前缀,否,则第一判断单元继续执行操作,是,则直接发送所述SQL语句至特定目标数据库。
与现有技术相比,本发明具有以下优点:
本发明在不同数据库支持不同SQL语法的基础上提出一种通用的SQL语句,即KSQL语句。所述通用的SQL语句有自身的语法,所述语法可以方便地描述数据库的各种功能,但它不能直接运行在实际的数据库产品中。外部应用程序不直接发送实际的与数据库产品相关的SQL语句,而是发送通用的SQL语句到翻译层,在程序运行时,翻译层会根据目标数据库类型生成合适的SQL语句,并发送到目标数据库执行。从而可以使应用程序不再关心所运行的数据库环境。因为本发明所述的KSQL语法与其它的SQL语法一样,都是结构化语言,所以将KSQL翻译成特定数据库上的SQL过程将变得简单,同时容易编写与其它SQL一样复杂的语句。
进一步,翻译结合预定义的存储过程可以最大程序的屏蔽各种数据库之间的差异,运行在某种数据库上的所有SQL功能都可以在其他数据库中实现。使用语句前缀决定是否要对语句进行翻译避免对外发布多个不同的接口。
附图说明
图1是本发明实施例一种访问不同类型数据库方法的流程图;
图2是图1实施例所述方法中步骤103翻译步骤的具体流程图;
图3是本发明第二实施例一种访问不同类型数据库方法的流程图;
图4是本发明第三实施例一种访问不同类型数据库方法的流程图;
图5是本发明实施例一种访问不同类型数据库***的结构框图;
图6是本发明第二实施例一种访问不同类型数据库***的结构框图;
图7是本发明第三实施例一种访问不同类型数据库***的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例一种访问不同类型数据库方法的流程图,包括步骤:
步骤101、接收与目标数据库无关的通用SQL语句。
本发明在不同数据库支持不同SQL语法的基础上提出一种通用的SQL语句,即KSQL语句。所述通用的SQL语句有自身的语法,所述语法可以方便地描述数据库的各种功能,但它不能直接运行在具体的目标数据库中。因此,使用所述通用SQL语句可以使外部应用程序不再关心所运行的数据库环境,提高了应用的灵活性。在本发明实施例中,所述接收的通用SQL语句优选的是外部JAVA应用***发送的,本领域技术人员可以理解,所述JAVA应用***并不限定本发明的保护范围。
步骤102、判断目标数据库类型。
获得应用***所运行的数据库环境信息,即目标数据库类型,所述数据库环境信息保存在配置文件中,在创建数据库连接时获取。因为KSQL语句是不能在具体的数据库中执行的,所以在将KSQL语句翻译成适合在特定目标数据库执行的SQL语句之前,必须先判断其所要运行的数据库类型,从而翻译成相应类型的SQL语句。
步骤103、根据目标数据库类型将通用SQL语句翻译成在特定目标数据库中执行的SQL语句。
在确定目标数据库类型后,将不能在具体数据库中执行的KSQL语句翻译成能够在特定目标数据库的执行的SQL语句。所述翻译过程及原理将在后面进行详细介绍,在此先不详述。
步骤104、发送所述翻译的SQL语句至特定目标数据库。
翻译完成后,将所述翻译完成的适合在特定目标数据库执行的SQL语句发送至目标数据库。
进一步,还可以包括步骤105、目标数据库执行所述SQL语句,返回执行结果。
所述目标数据库执行SQL语句,并返回执行结果。对于本领域的普通技术人员来说,是公知常识,在此不再详述。
参照图2、示出了图1实施例所述方法中步骤103翻译步骤的具体流程图,所述翻译过程具体包括步骤:
步骤1031、预置相应语法,进入步骤1032。
步骤1032、对接收的通用SQL语句进行语法解析。
根据语法将通用SQL语句解析成语法树。
步骤1033、根据语法解析的结果输出在特定目标数据库中执行的SQL语句。
从语法树信息中依次获取标识,输出在特定目标数据库中执行的SQL语句,所述步骤可以包括如下过程:
获取语句类型,并输出相应信息至缓冲区;
获取语法树中的列信息,并输出相应信息至缓冲区;
获取源表名称,并输出相应信息至缓冲区;
获取别名,并输出相应信息至缓冲区,如为空则不输出;
获取选择记录数信息,并输出相应信息至缓冲区;
输出缓冲区的内容。
下面以查询某个表的前N条数据的具体实例对以上步骤及原理进行详细介绍:
KSQL规定查询某个表的前N条数据的语法如下:
SELECT[TOP n]{*|列名}[,{*|列名}[,{*|列名}[...]]]FROM表名[AS别名]
忽略大小写,其中:
n为大于0的整数;
{A|B}表示在A和B中二选一;
[A]表示A是可选的。
根据这一语法规则,外部JAVA程序在DB2数据库中执行“SELECT TOP100*FROM t”的步骤如下:
1、当接收到外部JAVA程序发送的KSQL语句“SELECT TOP 100*FROM t”时,将该语句根据语法解析成一棵语法树,并检查语句是否符合语法。如果不合法则异常退出。解析后的语法树信息结构如下:
语句类型:SELECT
选择列表:*
源表名称:t
别名:
选择记录数:100
2、从语句的语法树信息中依次获取标识,并翻译成相应的SQL语句。上面的语句将通过以下几个步骤完成翻译:
(1)获取语句类型,“SELECT”说明这是一个选择功能的语句,则输出“SELECT”到缓冲区,缓冲区的内容为“SELECT”;
(2)获取树中的列信息,发现仅有一项*,则输出“*”到缓冲区,如有多项则循环,缓冲区的内容为“SELECT*”;
(3)获取源表名称,“t”直接加上“FROM”作为前缀后输出到缓冲区,缓冲区内容为“SELECT*FROM t”;
(4)获取别名,发现为空,则不输出任何东西,缓冲区内容为“SELECT*FROM t”;
(5)获取选择记录数信息,100表示有仅选择前100条记录,则向缓冲区输出“FETCH FIRST 100 ROWS ONLY”,缓冲区的内容为“SELECT*FROMt FETCH FIRST 100 ROWS ONLY”。
3、翻译完成,将缓冲区的内容“SELECT*FROM t FETCH FIRST 100ROWS ONLY”发到目标数据库执行。
从上述实例可以得知,翻译的整个过程为:(1)规定语法(2)对接收的语句进行语法解析并检查(3)根据语法解析的结果进行输出。
参照图3,示出了本发明第二实施例一种访问不同类型数据库方法的流程图,包括步骤:
步骤301、接收与目标数据库无关的通用SQL语句。
本发明在不同数据库支持不同SQL语法的基础上提出一种通用的SQL语句,即KSQL语句。所述通用的SQL语句有自身的语法,所述语法可以方便地描述数据库的各种功能,但它不能直接运行在具体的目标数据库中。因此,使用所述通用SQL语句可以使外部应用程序不再关心所运行的数据库环境,提高了应用的灵活性。
步骤302、判断目标数据库类型。
获得应用***所运行的数据库环境信息,即目标数据库类型,所述数据库环境信息保存在配置文件中,在创建数据库连接时获取。
步骤303、判断目标数据库是否支持所述通用SQL语句的功能。如果支持,则根据目标数据库类型将通用SQL语句翻译成在特定目标数据库中执行的SQL语句,即本发明第一实例所述情况,在些不再详细描述。
如果不支持则进入步骤304。
步骤304、在目标数据库中预置实现所述通用SQL语句功能的存储过程。进入步骤305。
步骤305、将所述通用SQL语句翻译成所述存储过程的调用语句。
存在这样一种情况,KSQL的某些功能在特定目标数据库中不能通过普通的SQL语句实现。如增加一列的SQL语句,在SQL SERVER中可以通过:ALTER TABLE t ADD f1 VARCHAR(50)实现,但在DB2中却没有直接的语法支持,但它可以通过多条SQL语句来变通实现,为了屏蔽这种差异,可以先预置一个在DB2数据库上可以实现该功能的存储过程,并在翻译时将语句翻译成该存储过程的调用语句,所述存储过程的逻辑为:创建一个新表,该新表的列为原表列加上待增加的列,然后将原表的数据复制到新表中,并将原表删除。所述逻辑代码在此不予介绍。在***布署时先在目标数据库如DB2数据库中执行该存储过程。在数据库中新增该存储过程后,就可以支持所述功能了,假如该存储过程的名称是add_column,应用***请求的KSQL语句与在不同的目标数据库上执行的语句如下:
KSQL:ALTER TABLE t ADD f1VARCHAR(50);
DB2:CALL add_column(′t′,′f1′,′VARCHAR(50)′);
ORACLE:ALTER TABLE t ADD(f1 VARCHAR2(50));
SQL SERVER:ALTER TABLE t ADD f1 VARCHAR(50)。
步骤306、目标数据库执行操作,返回执行结果。
本实施例所述技术方案通过预置存储过程结合翻译,最大程度的屏蔽各种数据库之间的差异,从而所有的SQL功能都可以在不同的数据库中实现。
参照图4,示出了本发明第三实施例一种访问不同类型数据库方法的流程图,包括步骤:
步骤401、接收与目标数据库无关的通用SQL语句。
本发明在不同数据库支持不同SQL语法的基础上提出一种通用的SQL语句,即KSQL语句。所述通用的SQL语句有自身的语法,所述语法可以方便地描述数据库的各种功能,但它不能直接运行在具体的目标数据库中。因此,使用所述通用SQL语句可以使外部应用程序不再关心所运行的数据库环境,提高了应用的灵活性。
步骤402、判断所述通用SQL语句是否以/*dialect*/为前缀。
如果所述通用SQL语句不是以/*dialect*/为前缀,则进入步骤:判断目标数据库类型;根据目标数据库类型将通用SQL语句翻译成在特定目标数据库中执行的SQL语句;发送所述翻译的SQL语句至特定目标数据库。即本发明第一实施例的情况,在些不再予以详述。
如果所述通用SQL语句是以/*dialect*/为前缀,则进入步骤403。
步骤403、直接发送所述SQL语句至特定目标数据库。
当发现语句是以/*dialect*/开始时,表明该语句不需要翻译,直接作为最终的SQL语句输出。在所有的SQL语法当中,/*和*/之间包含的内容被当作注释,不会被处理,所以/*dialect*/的存在不会影响最终SQL语句的执行。
本实施例所述技术方案使用语句前缀的方式决定是否要对语句进行翻译,从而避免了对外发布多个不同的接口。
参照图5、示出了本发明第一实施例一种访问不同类型数据库***的结构框图,包括:
接收单元501、用于接收与目标数据库无关的通用SQL语句。
本发明在不同数据库支持不同SQL语法的基础上提出一种通用的SQL语句,即KSQL语句。所述通用的SQL语句有自身的语法,所述语法可以方便地描述数据库的各种功能,但它不能直接运行在具体的目标数据库中。因此,使用所述通用SQL语句可以使外部应用程序不再关心所运行的数据库环境,提高了应用的灵活性。
第一判断单元502、用于判断目标数据库类型。
获得应用***所运行的数据库环境信息,即目标数据库类型,所述数据库环境信息保存在配置文件中,在创建数据库连接时获取。因为KSQL语句是不能在具体的数据库中执行的,所以在将KSQL语句翻译成适合在特定目标数据库执行的SQL语句之前,必须先判断其所要运行的数据库类型,从而翻译成相应类型的SQL语句。
翻译单元503、用于将通用SQL语句翻译成在特定目标数据库中执行的SQL语句。
所述翻译单元包括:
预置单元5031、用于预置相应语法;
语法树解析单元5032、用于根据语法将通用SQL语句解析成语法树;
输出单元5033、用于从语法树信息中依次获取标识,输出在特定目标数据库中执行的SQL语句。
在确定目标数据库类型后,将不能在具体数据库中执行的KSQL语句翻译成能够在特定目标数据库的执行的SQL语句。所述翻译过程及原理将在前面已经进行了详细的描述,为了节约篇幅,在此不再详述。
发送单元504、用于发送所述翻译的SQL语句至特定目标数据库。
翻译完成后,将所述翻译完成的适合在特定目标数据库执行的SQL语句发送至目标数据库。
进一步,还可以包括返回单元505、用于在目标数据库执行SQL语句后,返回执行结果。
参照图6、示出了本发明第二实施例一种访问不同类型数据库***的结构框图,包括:
接收单元601、用于接收与目标数据库无关的通用SQL语句。
本发明在不同数据库支持不同SQL语法的基础上提出一种通用的SQL语句,即KSQL语句。所述通用的SQL语句有自身的语法,所述语法可以方便地描述数据库的各种功能,但它不能直接运行在具体的目标数据库中。因此,使用所述通用SQL语句可以使外部应用程序不再关心所运行的数据库环境,提高了应用的灵活性。
第一判断单元602、用于判断目标数据库类型。
获得应用***所运行的数据库环境信息,即目标数据库类型,所述数据库环境信息保存在配置文件中,在创建数据库连接时获取。
第二判断单元603、用于判断目标数据库是否支持通用SQL语句的功能。如果所述目标数据库不支持通用SQL语句的功能,则:
翻译单元604、用于将所述通用SQL语句翻译成所述存储过程的调用语句
发送单元605、用于发送所述翻译的SQL语句至特定目标数据库。
参照图7、示出了本发明第三实施例一种访问不同类型数据库***的结构框图,包括:
接收单元701、用于接收与目标数据库无关的通用SQL语句。
本发明在不同数据库支持不同SQL语法的基础上提出一种通用的SQL语句,即KSQL语句。所述通用的SQL语句有自身的语法,所述语法可以方便地描述数据库的各种功能,但它不能直接运行在具体的目标数据库中。因此,使用所述通用SQL语句可以使外部应用程序不再关心所运行的数据库环境,提高了应用的灵活性。
第三判断单元702、用于判断通用SQL语句是否以/*dialect*/为前缀。
如果所述通用SQL语句以/*dialect*/为前缀,则:
发送单元703、用于直接发送所述SQL语句至目标数据库。
图5、图6、图7是与图1、图3、图4所述方法实施例对应的装置实施例,因此,装置实施例中未详细描述的部分参照方法实施例中的相关部分即可。
以上对本发明所提供的一种访问不同类型数据库的方法和***,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1、一种访问不同类型数据库的方法,其特征在于,包括:
接收与目标数据库无关的通用SQL语句,所述通用SQL语句具有实际含义;
判断目标数据库类型;
预置相应语法,对接收的通用SQL语句进行语法解析,根据语法解析的结果输出在特定目标数据库中执行的SQL语句;
发送所述输出的SQL语句至特定目标数据库。
2、如权利要求1所述的访问不同类型数据库的方法,其特征在于,还包括步骤:
目标数据库执行所述SQL语句,返回执行结果。
3、如权利要求1所述的访问不同类型数据库的方法,其特征在于,在所述判断目标数据库类型后,所述预置相应语法前,还包括步骤:
判断目标数据库是否支持所述通用SQL语句的功能,如不支持,则:
在目标数据库中预置实现所述通用SQL语句功能的存储过程;
预置相应语法,对接收的通用SQL语句进行语法解析,根据语法解析的结果输出所述存储过程的调用语句;
发送所述输出的存储过程的调用语句至特定目标数据库,流程结束。
4、如权利要求1所述的访问不同类型数据库的方法,其特征在于,所述语法解析具体步骤为:
根据语法将通用SQL语句解析成语法树;
所述输出在特定目标数据库中执行的SQL语句的具体步骤为:
从语法树信息中依次获取标识,输出在特定目标数据库中执行的SQL语句。
5、如权利要求1所述的访问不同类型数据库的方法,其特征在于,在所述接收通用SQL语句步骤后,且在所述判断目标数据库类型前,还包括:
判断所述通用SQL语句是否以/*dialect*/为前缀,否,则进入下一步,是,则直接发送所述SQL语句至特定目标数据库。
6、一种访问不同类型数据库的***,其特征在于,包括:
接收单元,用于接收与目标数据库无关的通用SQL语句,所述通用SQL语句具有实际含义;
第一判断单元,用于判断目标数据库类型;
预置单元,用于预置相应语法;
语法树解析单元,用于根据语法将通用SQL语句解析成语法树;
输出单元,用于从语法树信息中依次获取标识,输出在特定目标数据库中执行的SQL语句;
发送单元,用于发送所述输出的SQL语句至特定目标数据库。
7、如权利要求6所述的访问不同类型数据库的***,其特征在于,还包括:
返回单元,用于在目标数据库执行SQL语句后,返回执行结果。
8、如权利要求6所述的访问不同类型数据库的***,其特征在于,还包括:
第二判断单元,用于判断目标数据库是否支持通用SQL语句的功能,如不支持,则:在目标数据库中预置实现所述通用SQL语句功能的存储过程;预置相应语法,对接收的通用SQL语句进行语法解析,根据语法解析的结果输出所述存储过程的调用语句;发送所述输出的存储过程的调用语句至特定目标数据库。
9、如权利要求6所述的访问不同类型数据库的***,其特征在于,还包括:
第三判断单元,用于判断通用SQL语句是否以/*dialect*/为前缀,否,则第一判断单元继续执行操作,是,则直接发送所述SQL语句至特定目标数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101876802A CN100555288C (zh) | 2007-11-21 | 2007-11-21 | 一种访问不同类型数据库的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101876802A CN100555288C (zh) | 2007-11-21 | 2007-11-21 | 一种访问不同类型数据库的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101158975A CN101158975A (zh) | 2008-04-09 |
CN100555288C true CN100555288C (zh) | 2009-10-28 |
Family
ID=39307077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101876802A Active CN100555288C (zh) | 2007-11-21 | 2007-11-21 | 一种访问不同类型数据库的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100555288C (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604237A (zh) * | 2008-06-10 | 2009-12-16 | 中兴通讯股份有限公司 | 一种访问通用数据库的*** |
CN102193922B (zh) * | 2010-03-04 | 2013-07-24 | 杭州华三通信技术有限公司 | 一种对数据库进行访问的方法和装置 |
CN102467421B (zh) * | 2010-11-19 | 2014-04-16 | 深圳市金蝶友商电子商务服务有限公司 | 一种基于租户数据的处理方法及计算机 |
CN102253984A (zh) * | 2011-06-28 | 2011-11-23 | 用友软件股份有限公司 | 查询语句处理装置和查询语句处理方法 |
CN102436474A (zh) * | 2011-09-29 | 2012-05-02 | 畅捷通信息技术股份有限公司 | Sql函数转换装置和sql函数转换方法 |
CN103176782A (zh) * | 2011-12-22 | 2013-06-26 | 北大方正集团有限公司 | 数据库访问的方法和装置 |
CN102567517A (zh) * | 2011-12-28 | 2012-07-11 | 用友软件股份有限公司 | 发布数据库数据的装置和方法 |
CN102867045A (zh) * | 2012-09-05 | 2013-01-09 | 武汉达梦数据库有限公司 | 基于驱动层实现的异构数据库保留字兼容方法及*** |
CN103714066B (zh) * | 2012-09-29 | 2019-10-22 | Sap欧洲公司 | 基于模板的数据库分析器 |
CN103823815B (zh) * | 2012-11-19 | 2017-05-17 | 中国联合网络通信集团有限公司 | 服务器及数据库访问方法 |
CN103338208B (zh) * | 2013-07-16 | 2017-05-24 | 五八同城信息技术有限公司 | 一种sql注入防御的方法和*** |
CN104252510A (zh) * | 2013-11-05 | 2014-12-31 | 深圳市华傲数据技术有限公司 | 一种sql语言翻译方法和装置 |
CN104252357A (zh) * | 2013-11-05 | 2014-12-31 | 深圳市华傲数据技术有限公司 | 一种sql语言解析方法和装置 |
CN103914572A (zh) * | 2014-04-29 | 2014-07-09 | 福建星网视易信息***有限公司 | 数据库建立***、装置和方法 |
CN104536987B (zh) * | 2014-12-08 | 2017-12-05 | 联动优势电子商务有限公司 | 一种查询数据的方法及装置 |
CN104615713A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮通用软件有限公司 | 一种基于多数据库类型的sql执行方法和装置 |
CN105260403B (zh) * | 2015-09-22 | 2019-05-31 | 同望科技股份有限公司 | 通用跨数据库访问方法 |
CN105468717B (zh) * | 2015-11-20 | 2020-11-10 | 北京百度网讯科技有限公司 | 数据库操作方法和装置 |
CN106959956A (zh) * | 2016-01-11 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 数据库间的语句转换方法和装置 |
CN106021071A (zh) * | 2016-05-04 | 2016-10-12 | 北京思特奇信息技术股份有限公司 | 一种监控sql运行过程的方法和*** |
CN106020847A (zh) * | 2016-06-06 | 2016-10-12 | 北京京东尚科信息技术有限公司 | 一种持久层开发框架配置sql的方法和装置 |
CN106383701A (zh) * | 2016-08-30 | 2017-02-08 | 西安美林数据技术股份有限公司 | 基于通用多协议数据访问接口技术的数据服务*** |
CN108415909A (zh) * | 2017-02-09 | 2018-08-17 | 北京京东尚科信息技术有限公司 | 一种访问不同数据库的***及方法 |
CN107153535B (zh) * | 2017-03-27 | 2020-08-04 | 武汉斗鱼网络科技有限公司 | 一种操作ElasticSearch的方法及装置 |
CN107844399B (zh) * | 2017-10-10 | 2020-06-16 | 武汉斗鱼网络科技有限公司 | 自动监控数据库服务的方法、存储介质、电子设备及*** |
CN109324905B (zh) * | 2018-09-30 | 2021-03-30 | 拉卡拉支付股份有限公司 | 数据库操作方法、装置、电子设备及存储介质 |
CN109271451B (zh) * | 2018-10-12 | 2021-06-22 | 武汉达梦数据库有限公司 | 一种数据库外部链接的提取方法 |
CN109871408B (zh) * | 2019-03-05 | 2023-07-14 | 深圳市迅雷网络技术有限公司 | 一种多类型数据库适配方法、装置、电子设备及存储介质 |
CN110083625A (zh) * | 2019-03-18 | 2019-08-02 | 北京奇艺世纪科技有限公司 | 实时流处理方法、设备、数据处理设备及介质 |
CN110489441B (zh) * | 2019-08-12 | 2022-08-05 | 厦门商集网络科技有限责任公司 | 一种基于大数据的即席查询方法及设备 |
CN110674162A (zh) * | 2019-09-23 | 2020-01-10 | 税友软件集团股份有限公司 | 一种数据库语句执行方法及相关装置 |
CN111061757B (zh) * | 2019-12-19 | 2023-03-31 | 用友网络科技股份有限公司 | 数据库的语言转换方法、装置、电子设备及存储介质 |
CN111488391A (zh) * | 2020-04-09 | 2020-08-04 | 中国银行股份有限公司 | 数据处理方法及装置 |
CN115858561A (zh) * | 2020-06-24 | 2023-03-28 | 中兴通讯股份有限公司 | 统一sql的方法、***、设备及介质 |
CN112434069A (zh) * | 2020-12-01 | 2021-03-02 | 天津市鑫联兴科技有限公司 | 一种多源异构数据库访问适配方法及适配器 |
CN113722387B (zh) * | 2021-07-27 | 2024-02-23 | 深圳兆日科技股份有限公司 | 数据库适配方法、装置、设备、存储介质及计算机程序 |
CN113792066A (zh) * | 2021-09-23 | 2021-12-14 | 中国农业银行股份有限公司 | 一种批量sql的动态解析调度方法及装置 |
CN117421277A (zh) * | 2022-07-11 | 2024-01-19 | 华为云计算技术有限公司 | 一种文件管理方法及相关设备 |
CN117331963B (zh) * | 2023-11-28 | 2024-03-08 | 恒生电子股份有限公司 | 数据访问处理方法、装置、电子设备及存储介质 |
-
2007
- 2007-11-21 CN CNB2007101876802A patent/CN100555288C/zh active Active
Non-Patent Citations (4)
Title |
---|
一种SQL语法分析的策略和实现. 孙兆玉,朱鸿宇,黄宇光.计算机应用,第27卷第6期. 2007 |
一种SQL语法分析的策略和实现. 孙兆玉,朱鸿宇,黄宇光.计算机应用,第27卷第6期. 2007 * |
通用标准SQL语法分析模型. 李海龙,张维明,肖卫东,黎曦.小型微型计算机***,第24卷第11期. 2003 |
通用标准SQL语法分析模型. 李海龙,张维明,肖卫东,黎曦.小型微型计算机***,第24卷第11期. 2003 * |
Also Published As
Publication number | Publication date |
---|---|
CN101158975A (zh) | 2008-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100555288C (zh) | 一种访问不同类型数据库的方法和*** | |
US7054877B2 (en) | Dealing with composite data through data model entities | |
CN100468396C (zh) | 用于任意数据模型的映射体系结构 | |
US6954748B2 (en) | Remote data access and integration of distributed data sources through data schema and query abstraction | |
US8086647B2 (en) | Sequenced modification of multiple entities based on an abstract data representation | |
US11599535B2 (en) | Query translation for searching complex structures of objects | |
US8165989B2 (en) | Automated data model extension through data crawler approach | |
US7096229B2 (en) | Dynamic content generation/regeneration for a database schema abstraction | |
US9558239B2 (en) | Relational query planning for non-relational data sources | |
CN108037916B (zh) | 一种基于web的图形化业务建模方法 | |
US7624122B2 (en) | Method and system for querying a database | |
JP2007534087A (ja) | 部分的クエリーキャッシング | |
US20220035744A1 (en) | Systems and methods for implementing overlapping data caching for object application program interfaces | |
US20160275126A1 (en) | Accessing and editing virtually-indexed message flows using structured query langauge (sql) | |
KR101877828B1 (ko) | 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템 | |
CN110309214B (zh) | 一种指令执行方法及其设备、存储介质、服务器 | |
US8433729B2 (en) | Method and system for automatically generating a communication interface | |
CN110489401B (zh) | 一种数据库对象的部署方法及装置 | |
US7617236B2 (en) | Method and system for displaying results of a dynamic search | |
CN113448969A (zh) | 数据处理方法、设备、程序产品及存储介质 | |
CN113220709A (zh) | 一种操作数据库的语法处理方法、装置、设备和存储介质 | |
Hudnott et al. | Efficient Multiple Simultaneous Assignment of Database Tables | |
JPH08297571A (ja) | ソフトウェア管理方法及び装置 | |
CN103605802A (zh) | 数据传输装置和数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |