CN109857757A - 数据库间的语句转换方法、系统和终端 - Google Patents
数据库间的语句转换方法、系统和终端 Download PDFInfo
- Publication number
- CN109857757A CN109857757A CN201910057845.7A CN201910057845A CN109857757A CN 109857757 A CN109857757 A CN 109857757A CN 201910057845 A CN201910057845 A CN 201910057845A CN 109857757 A CN109857757 A CN 109857757A
- Authority
- CN
- China
- Prior art keywords
- sentence
- database
- grammer
- type
- data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种数据库间的语句转换方法、系统和终端,其中转换系统,包括:模拟服务端,用于接收按照第一数据库的语法撰写的第一语句;语句转换器,用于将第一语句转换成符合第二数据库的语法的第二语句;模拟客户端,用于将第二语句发送至第二数据库进行执行。用于降低用户使用数据库的学习成本,提高开发效率。从而降低了用户使用数据库的学习成本,提高了开发效率。
Description
技术领域
本申请涉及数据库领域,特别涉及数据库间的语句转换方法、系统和终端。
背景技术
在信息化时代,数据是非常最宝贵的,数据常常保存在数据库中,但数据库种类繁多给软件用户带来了不便,软件开发人员需要学习各种类型的数据库语法,以适应不同类型的数据库,学习成本较高,造成开发效率低。
因此,降低用户使用数据库的学习成本,提高开发效率,是本领域亟待解决的问题。
发明内容
本申请提供了一种数据库间的语句转换方法、系统和终端,用于降低用户使用数据库的学习成本,提高开发效率。
为了解决上述问题,作为本申请的一个方面,提供了一种数据库间的语句转换系统,包括:
模拟服务端,用于接收按照第一数据库的语法撰写的第一语句;
语句转换器,用于将第一语句转换成符合第二数据库的语法的第二语句;
模拟客户端,用于将第二语句发送至第二数据库进行执行。
可选的,第一语句包括:数据库登录语句、数据增加语句、数据删除语句、数据查询语句、数据修改语句和/或数据库登出语句。
可选的,模拟服务端用于启动TCP服务器并监听预设端口,接收从预设端口发来的第一语句。
可选的,第一语句为第一客户端向模拟服务端发送的语句,模拟服务端还用于在接收到第一语句后在第一语句中加入第一客户端的连接标识信息。
可选的,语句转换器将第一语句转换成符合第二数据库的语法的第二语句,包括:
确定第一语句的语句类型,语句类型包括连接语句和数据操作语句;
当第一语句的语句类型为连接语句时,根据第一数据库的连接协议语法对第一语句进行拆分得到多个第一关键字,根据第一关键字按照第二数据库的连接协议语法生成第二语句,其中,第一关键字包括数据库地址、端口号、数据库名称、字符编码、用户名、登录密码和安全加密机制中的一个或多个;
和/或,当第一语句的语句类型为数据操作语句时,确定第一语句中包含的第一数据库的预设关键字,根据预设关键字确定第一语句的操作类型,根据操作类型和第一数据库的语法从第一语句中提取输入参数,根据第二数据库的语法、操作类型和输入参数生成第二语句;其中,输入参数包括被选取的字段集、被选取的表集、查询条件、分组字段、排序字段、排序类型、查询记录数限制、增加的数据值中的一个或多个。
可选的,还包括:配置单元;
配置单元用于为模拟服务端配置第一数据库的第一数据库类型、第一数据库名称、用户名和登录密码;
配置单元用于为模拟客户端端配置第二数据库的第二数据库类型、第二数据库名称、用户名和登录密码。
可选的,模拟客户端,还用于接收第二数据库执行第二语句的执行结果;
模拟服务端,还用于返回执行结果。
本申请还提出一种数据库间的语句转换方法,包括:
接收按照第一数据库的语法撰写的第一语句;
将第一语句转换成符合第二数据库的语法的第二语句;
将第二语句发送至第二数据库进行执行。
可选的,第一语句包括:数据库登录语句、数据增加语句、数据删除语句、数据查询语句、数据修改语句和/或数据库登出语句。
可选的,接收按照第一数据库的语法撰写的第一语句,包括:
启动TCP服务器并监听预设端口,接收从预设端口发来的第一语句。
可选的,第一语句为第一客户端发来的语句;
在接收按照第一数据库的语法撰写的第一语句之后,在将第一语句转换成符合第二数据库的语法的第二语句之前,还包括:在第一语句中加入第一客户端的连接标识信息。
可选的,将第一语句转换成符合第二数据库的语法的第二语句,包括:
确定第一语句的语句类型,语句类型包括连接语句和数据操作语句;
当第一语句的语句类型为连接语句时,根据第一数据库的连接协议语法对第一语句进行拆分得到多个第一关键字,根据第一关键字按照第二数据库的连接协议语法生成第二语句,其中,第一关键字包括数据库地址、端口号、数据库名称、字符编码、用户名、登录密码和安全加密机制中的一个或多个;
和/或,当第一语句的语句类型为数据操作语句时,确定第一语句中包含的第一数据库的预设关键字,根据预设关键字确定第一语句的操作类型,根据操作类型和第一数据库的语法从第一语句中提取输入参数,根据第二数据库的语法、操作类型和输入参数生成第二语句;其中,输入参数包括被选取的字段集、被选取的表集、查询条件、分组字段、排序字段、排序类型、查询记录数限制、增加的数据值中的一个或多个。
可选的,在接收按照第一数据库的语法撰写的第一语句之前,还包括:
配置第一数据库的第一数据库类型、第一数据库名称、用户名和登录密码;
配置第二数据库的第二数据库类型、第二数据库名称、用户名和登录密码。
可选的,还包括:
接收第二数据库执行第二语句的执行结果;
返回执行结果。
本申请还提出一种终端,包括本申请提出的任一的系统。
本申请还提出另一种终端,包括处理器、存储器以及存储在存储器上可在处理器上运行的程序,处理器执行程序时实现本申请提出的任一方法的步骤。
本申请提出了一种数据库间的语句转换方法、系统和终端,用于将按照第一数据的语法撰写的第一语句转换为符合第二数据库语法的第二语句,从而降低了用于学习数据库语言的成本,用户可以使用第一数据库的语言对第二数据库进行操作,而无需重新学习第二数据库的语言,从而加快了开发速度。
附图说明
图1为本申请实施例中一种数据库间的语句转换系统的组成图;
图2为本申请实施例中一种数据库间的语句转换方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或终端不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或终端固有的其它步骤或单元。
在现有技术中,存在各种类型的数据库,用户在开发过程中需要学习各种类型的数据库语言,花费了大量的时间和精力,降低了开发成本,大部分用户往往对某一种数据库特别熟悉,能够熟练使用,如果各个用户能够以自己最擅长的开发语言进行开发,就能够提高开发效率。
为了提高开发效率,如图1所示,本申请提出了一种数据库间的语句转换系统,包括:模拟服务端10、语句转换器20和模拟客户端30。
模拟服务端10,用于接收按照第一数据库的语法撰写的第一语句;
语句转换器20,用于将第一语句转换成符合第二数据库的语法的第二语句;
模拟客户端30,用于将第二语句发送至第二数据库进行执行。
具体的,第一数据库是使用本申请提出的开发系统的用户所熟悉使用的数据库,而第二数据库是实际上存储数据的数据库,本申请提出的系统可以与第二数据库通信连接,在现有技术中用户在使用数据库时是通过客户端与服务端相连接,因此在用户使用本申请提出的系统时,模拟服务端10模拟成用户所习惯使用的第一数据库的服务端,用户习惯使用第一数据库,其通过第一数据库对应的客户端与本申请的模拟服务端相通信连接,模拟服务端10模拟成第一数据库的服务端后,接收用户发来的第一语句,然后将第一语句传输给语句转换器20,语句转换器20将第一语句转换成符合第二数据库的语法的第二语句,在转换的时候保持第一语句的语义不变,然后将第二语句传输给模拟客户端30,模拟客户端30模拟成第二数据库的客户端,将第二语句发送给第二数据库进行执行。举例说明:用户所习惯使用的时MySQL数据库,而开发时所实际使用的数据库是HBase,因此用户撰写的第一语句是MySQL数据库的增删改查等语句,本申请提出的系统在接受到MySQL数据库的语句后,根据MySQL数据库的语法确定第一语句的语义和用户输入的限定条件等,然后将第一语句转化成符合HBase数据的第二语句,在HBase中执行第二语句,这样一来用户就可以只需要使用自己擅长的MySQL数据库的语句,而无需重新学习HBase数据库的语句,降低了用户的学习成本,提高了开发效率。
可选的,第一数据库和第二数据库分别可以是Sql Server、Oracle、Hbase、MongoDB中的任意一个,本申请对此不作限制。
可选的,在本实施例中,第一语句包括:数据库登录语句、数据增加语句、数据删除语句、数据查询语句、数据修改语句和/或数据库登出语句。不同类型的数据库在登陆时、进行数据的增删改查时所采用的语句都是不一样的,在本实施例中,在使用第二数据库时,首先需要登陆第二数据库,所以应当先发送数据库登陆语句,在完成数据库登陆后,再根据用户的需要发送数据增加语句、数据删除语句、数据查询语句、数据修改语句等,最后在用户使用完第二数据库后发送数据库登出语句退出登录。
可选的,模拟服务端用于启动TCP服务器并监听预设端口,接收从预设端口发来的第一语句。TCP服务器用于与用户所使用的第一数据库的客户端(以下称:第一客户端)进行TCP连接,TCP连接时通过TCP/IP协议完成数据在两个方向上流动,在连接建立之前,TCP服务器是被动监听传入的连接请求。连接的另一方(第一客户端)负责启动连接,它主动请求连接形成。一旦连接形成,两边都可以发送和接受数据,为了保证第一客户端能够发送连接请求,它必须知道模拟服务端的地址信息,供TCP服务器监听。地址信息包括两个不同的部分。第一部分是IP地址和第二部分是预设端口。即用户想要使用客户端与本申请提出的系统连接时,需要知道本系统的IP地址和预设端口,将第一语句发送到本系统的IP地址上,并通过预设端口进行传输。预设端口可以是8080端口。
可选的,第一语句为第一客户端向模拟服务端发送的语句,模拟服务端还用于在接收到第一语句后在第一语句中加入第一客户端的连接标识信息。通常在对任何数据库进行操作后,数据库都会给出反馈,例如从数据库中查找数据,数据库会返回符合查找条件的语句,因此,为了保证返回查找到的数据时,数据能够被正确传输到发起查找请求的第一客户端,需要在第一语句中加入连接标识信息,用于指明发起连接的第一客户端的地址。
可选的,语句转换器将第一语句转换成符合第二数据库的语法的第二语句,包括:
确定第一语句的语句类型,语句类型包括连接语句和数据操作语句;
具体的,在确定第一语句的语句类型时,可以是根据第一数据库中的预设关键字进行确定,数据库语句中最基本的语句为登录语句、登出语句、增删改查语句,以MySQL数据库为例,MySQL使用SQL语言,SQL语言预设了多个预设关键字,通常来讲SQL语句的第一个字为预设关键字例如“Create”、“Select”、“Alter”等,根据SQL语句的预设关键字就能够判断该语句是不是数据操作语句,相似的,在登录数据库时,输入登陆名和登陆密码也是有预设的语法限制的,在采用DOS登陆MySQL数据库时,输入的命令为MySQL-u root-p password,其中根据MySQL数据库的语法知道-u后的root是用户名,-p后的字符串password为密码,在识别到该命令中的预设关键字“MySQL”就能够确定该语句为连接语句,在登陆数据库时还可以输入ip地址和预设端口的端口号,例如:第一语句可以是:MySQL-h 127.0.0.1-uroot–p 123-P 3306,其中127.0.0.1为ip地址,端口号为3306。
当第一语句的语句类型为连接语句时,根据第一数据库的连接协议语法对第一语句进行拆分得到多个第一关键字,根据第一关键字按照第二数据库的连接协议语法生成第二语句,其中,第一关键字包括数据库地址、端口号、数据库名称、字符编码、用户名、登录密码和安全加密机制中的一个或多个;
具体的,仍然以第一数据库为MySQL为例,MySQL数据库的连接协议语法给出了标准的语句格式:MySQL-h主机地址-u用户名-p用户密码,根据MySQL数据库的连接协议语法,-h后面连接的就是数据库地址,而-u后面连接的就是用户名,-p后面连接的为用户密码,因此,先识别上述“-h”、“-p”等SQL语言的预设关键字,然后就可以得到两个预设关键字之间的第一关键字,通过第一数据的连接协议语法可以准确的确定数据库地址、端口号、数据库名称、用户名和登陆密码,而安全加密机制和字符编码属于可选项,可选采用数据库的默认值,在得到了多个第一关键字后,假设第二数据库为HBase数据库,就按照HBase的语法生成符合HBase数据库要求的登陆语句。
和/或,当第一语句的语句类型为数据操作语句时,确定第一语句中包含的第一数据库的预设关键字,根据预设关键字确定第一语句的操作类型,根据操作类型和第一数据库的语法从第一语句中提取输入参数,根据第二数据库的语法、操作类型和输入参数生成第二语句;其中,输入参数包括被选取的字段集、被选取的表集、查询条件、分组字段、排序字段、排序类型、查询记录数限制、增加的数据值中的一个或多个。
具体的,以第一数据库为MySQL为例,预设关键字包括insert、delete、update、select等分别对应对某个表的数据就行增删改查,假设第一语句为:delete fromtable1where id=9,其中包含了预设关键字delete、from、where,通过判断第一语句中包含的预设关键字delete from就可以确定操作类型删除,然后根据MySQL的语法可以确定输入参数包括delete from后的被选取的表集table1以及查询条件id=9,假设第二数据库为HBase数据库,则按照HBase的语法给出第二语句进行执行。又例如,第一数据库为MySQL数据库,第一语句为select name from table1where id=10,根据第一语句中的预设关键字select可以确定第一语句为数据操作语句,操作类型为查询,根据MySQL数据库的语法可以知道select和from之间为被选取的字段集,from和where之间为被选取的表集,where之后为查询条件,上述表集、字段集和查询条件为输入参数,第二数据库假设为HBase,HBase的查询语句的为get<table>,<rowkey>,[<family:column>,....],其中table为表集、rowkey为键对应于查询条件、family:column对应于字段集,因此生成的HBase的第二语句为get‘table1’,’10’,’name’,其中id为主键。在判断第一语句中是否包含预设关键词时可以采用布尔函数,例如可以是如下的函数:
其中sql为第一语句,regExp为预设关键词,Pattern和Matcher为JAVA开发包中预设的类,上述函数用于判断第一语句sql中是否包含regExp,返回的结果为布尔类型的对象true或false,表明是sql中否包含regExp。
可选的,本申请提出的系统中,还包括:配置单元;
配置单元用于为模拟服务端配置第一数据库的第一数据库类型、第一数据库名称、用户名和登录密码;
配置单元用于为模拟客户端端配置第二数据库的第二数据库类型、第二数据库名称、用户名和登录密码。
具体的,在使用数据库时,需要先撰写配置文件,通常为xml格式的配置文件。配置单元用于配置上述的配置文件,在用户使用本申请提出的系统时,本申请提出的系统对于用户而言是第一数据库,而实际上本申请提出的系统是与第二数据库相连,因此配置单元需要为第一数据库和第二数据库都进行配置,一方面满足用户使用第一数据库的需求,另一方面满足与第二数据库连接的需求。
可选的,模拟客户端,还用于接收第二数据库执行第二语句的执行结果;
模拟服务端,还用于返回执行结果。具体的,执行结果可以是查询得到的数据等,模拟服务端具体向与模拟服务端连接的第一客户端返回执行结果。
为了更好说明本申请提出的系统,以下提出一优选实施例。
本系统包含三部分:模拟服务端,语句转换器、模拟客户端和配置单元,本实施例中以模拟服务端模拟MySQL(第一数据库)为例,模拟服务端模拟数据库验证、接收、管理客户端连接,语句转换器用于将MySQL数据库执行语句解析并转换其它数据库相关语句,模拟客户端用于模拟第二数据库的客户端与第二数据库相连,第二数据库可以是Sql Server、Oracle、Hbase、MongoDB等数据库。
首先配置单元配置模拟服务端的第一数据库类型、第一数据库名、用户名、密码等信息,然后配置模拟客户端的第二数据库类型、第二数据库名、用户名、密码等信息。
主进程启动三个子进程,分别对应模拟服务端、语句转换器、模拟客户端,并从配置文件中获取第一数据库和第二数据库的服务端、客户端信息。
模拟服务端子进程启动TCP服务器并监听预设端口,等待用户使用的第一客户端连接。
第一客户端发起连接请求,模拟服务端接收请求并创建连接。
第一客户端发送数据库名、用户名、密码等信息,模拟服务端接收并校验正确后允许第一客户端发送数据操作语句。
第一客户端发送数据操作语句,模拟服务端接收数据操作语句并加上第一客户端的连接标识信息后发送给主进程的任务队列。
主进程的任务队列收到信息后通知语句转换器的子进程处理数据操作语句。语句转换器的子进程收到通知后从主进程的任务队列中取出任务信息,并对数据操作语句按照配置文件中数据库类型的相关协议语法进行解析,并将其转换为第二数据库可执行语句后放入主进程任务处理队列。
数据库操作语句在进行转换时,首先进行语法分析,生成语法分析树。然后检查数据操作语句中所涉及的对象,以及包含的预设关键字。提取数据操作语句中的预设关键字,确定操作类型(例如增、删、改、查)、操作的字段集(查询字段、更新字段及值等操作)、操作表集(单表或多表关联等)、查询条件、分组字段、排序字段、排序类型(正序还是倒序)、查询记录数限制等,再把提取出来的预设关键字根据要转换的第二数据库的语法进行关键字比对,形成语义相似的语法树,分析语法树中的各个元素组合成新的数据库操作语句。
主进程的任务队列收到语句转换器的子进程发送的处理信息,然后通知模拟客户端的子进程处理信息。模拟客户端收到主进程通知信息后从任务处理队列中取出相关任务信息,并从配置文件中获取第二数据库的连接信息,包括数据库类型、数据库名、用户名、密码等,然后根据第二数据库的类型发送数据库连接请求信息给第二数据库的服务端。
第二数据库的服务端校验身份后并创建连接,模拟客户端进程发送数据操作语句给第二数据库执行,第二数据库的服务端处理后返回执行结果。
模拟客户端接收到第二数据库返回的执行结果后处理并存储到主进程任务队列中。主进程任务队列收到模拟客户端发来的执行结果后,通知模拟服务端子进程处理。
模拟服务端从主进程任务队列中取出处理后的执行结果并返回给第一客户端。
如图2所示,本申请还提出一种数据库间的语句转换方法,包括:
S11:接收按照第一数据库的语法撰写的第一语句;
S12:将第一语句转换成符合第二数据库的语法的第二语句;
S13:将第二语句发送至第二数据库进行执行。
可选的,第一语句包括:数据库登录语句、数据增加语句、数据删除语句、数据查询语句、数据修改语句和/或数据库登出语句。
可选的,接收按照第一数据库的语法撰写的第一语句,包括:
启动TCP服务器并监听预设端口,接收从预设端口发来的第一语句。
可选的,第一语句为第一客户端发来的语句;
在接收按照第一数据库的语法撰写的第一语句之后,在将第一语句转换成符合第二数据库的语法的第二语句之前,还包括:在第一语句中加入第一客户端的连接标识信息。
可选的,将第一语句转换成符合第二数据库的语法的第二语句,包括:
确定第一语句的语句类型,语句类型包括连接语句和数据操作语句;
当第一语句的语句类型为连接语句时,根据第一数据库的连接协议语法对第一语句进行拆分得到多个第一关键字,根据第一关键字按照第二数据库的连接协议语法生成第二语句,其中,第一关键字包括数据库地址、端口号、数据库名称、字符编码、用户名、登录密码和安全加密机制中的一个或多个;
和/或,当第一语句的语句类型为数据操作语句时,确定第一语句中包含的第一数据库的预设关键字,根据预设关键字确定第一语句的操作类型,根据操作类型和第一数据库的语法从第一语句中提取输入参数,根据第二数据库的语法、操作类型和输入参数生成第二语句;其中,输入参数包括被选取的字段集、被选取的表集、查询条件、分组字段、排序字段、排序类型、查询记录数限制、增加的数据值中的一个或多个。
可选的,在接收按照第一数据库的语法撰写的第一语句之前,还包括:
配置第一数据库的第一数据库类型、第一数据库名称、用户名和登录密码;
配置第二数据库的第二数据库类型、第二数据库名称、用户名和登录密码。
可选的,还包括:接收第二数据库执行第二语句的执行结果;
返回执行结果。
本申请还提出一种终端,包括本申请提出的任一的系统。
本申请还提出另一种终端,包括处理器、存储器以及存储在存储器上可在处理器上运行的程序,处理器执行程序时实现本申请提出的任一方法的步骤。
本申请提出的终端可以是计算机终端或服务器。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种数据库间的语句转换系统,其特征在于,包括:
模拟服务端,用于接收按照第一数据库的语法撰写的第一语句;
语句转换器,用于将所述第一语句转换成符合第二数据库的语法的第二语句;
模拟客户端,用于将所述第二语句发送至所述第二数据库进行执行。
2.根据权利要求1所述的数据库间的语句转换系统,其特征在于,
所述第一语句包括:数据库登录语句、数据增加语句、数据删除语句、数据查询语句、数据修改语句和/或数据库登出语句。
3.根据权利要求1-2任一项所述的数据库间的语句转换系统,其特征在于,所述模拟服务端用于启动TCP服务器并监听预设端口,接收从预设端口发来的第一语句。
4.根据权利要求1-3任一项所述的数据库间的语句转换系统,其特征在于,
所述第一语句为第一客户端向模拟服务端发送的语句,所述模拟服务端还用于在接收到所述第一语句后在所述第一语句中加入第一客户端的连接标识信息。
5.根据权利要求1-4任一项所述的数据库间的语句转换系统,其特征在于,语句转换器将所述第一语句转换成符合第二数据库的语法的第二语句,包括:
确定所述第一语句的语句类型,所述语句类型包括连接语句和数据操作语句;
当所述第一语句的语句类型为连接语句时,根据所述第一数据库的连接协议语法对所述第一语句进行拆分得到多个第一关键字,根据所述第一关键字按照所述第二数据库的连接协议语法生成第二语句,其中,所述第一关键字包括数据库地址、端口号、数据库名称、字符编码、用户名、登录密码和安全加密机制中的一个或多个;
和/或,当所述第一语句的语句类型为数据操作语句时,确定所述第一语句中包含的所述第一数据库的预设关键字,根据所述预设关键字确定所述第一语句的操作类型,根据所述操作类型和所述第一数据库的语法从所述第一语句中提取输入参数,根据所述第二数据库的语法、所述操作类型和所述输入参数生成第二语句;其中,所述输入参数包括被选取的字段集、被选取的表集、查询条件、分组字段、排序字段、排序类型、查询记录数限制、增加的数据值中的一个或多个。
6.根据权利要求1-5任一项所述的数据库间的语句转换系统,其特征在于,还包括:配置单元;
所述配置单元用于为模拟服务端配置第一数据库的第一数据库类型、第一数据库名称、用户名和登录密码;
所述配置单元用于为模拟客户端端配置第二数据库的第二数据库类型、第二数据库名称、所述用户名和所述登录密码。
7.根据权利要求1-6任一项所述的数据库间的语句转换系统,其特征在于,
所述模拟客户端,还用于接收所述第二数据库执行所述第二语句的执行结果;
所述模拟服务端,还用于返回所述执行结果。
8.一种数据库间的语句转换方法,其特征在于,包括:
接收按照第一数据库的语法撰写的第一语句;
将所述第一语句转换成符合第二数据库的语法的第二语句;
将所述第二语句发送至所述第二数据库进行执行。
9.根据权利要求8所述的数据库间的语句转换方法,其特征在于,
所述第一语句包括:数据库登录语句、数据增加语句、数据删除语句、数据查询语句、数据修改语句和/或数据库登出语句。
10.根据权利要求8-9任一项所述的数据库间的语句转换方法,其特征在于,接收按照第一数据库的语法撰写的第一语句,包括:
启动TCP服务器并监听预设端口,接收从预设端口发来的第一语句。
11.根据权利要求8-10任一项所述的数据库间的语句转换方法,其特征在于,
所述第一语句为第一客户端发来的语句;
在接收按照第一数据库的语法撰写的第一语句之后,在将所述第一语句转换成符合第二数据库的语法的第二语句之前,还包括:在所述第一语句中加入第一客户端的连接标识信息。
12.根据权利要求8-11任一项所述的数据库间的语句转换方法,其特征在于,将所述第一语句转换成符合第二数据库的语法的第二语句,包括:
确定所述第一语句的语句类型,所述语句类型包括连接语句和数据操作语句;
当所述第一语句的语句类型为连接语句时,根据所述第一数据库的连接协议语法对所述第一语句进行拆分得到多个第一关键字,根据所述第一关键字按照所述第二数据库的连接协议语法生成第二语句,其中,所述第一关键字包括数据库地址、端口号、数据库名称、字符编码、用户名、登录密码和安全加密机制中的一个或多个;
和/或,当所述第一语句的语句类型为数据操作语句时,确定所述第一语句中包含的所述第一数据库的预设关键字,根据所述预设关键字确定所述第一语句的操作类型,根据所述操作类型和所述第一数据库的语法从所述第一语句中提取输入参数,根据所述第二数据库的语法、所述操作类型和所述输入参数生成第二语句;其中,所述输入参数包括被选取的字段集、被选取的表集、查询条件、分组字段、排序字段、排序类型、查询记录数限制、增加的数据值中的一个或多个。
13.根据权利要求8-12任一项所述的数据库间的语句转换方法,其特征在于,在接收按照第一数据库的语法撰写的第一语句之前,还包括:
配置第一数据库的第一数据库类型、第一数据库名称、用户名和登录密码;
配置第二数据库的第二数据库类型、第二数据库名称、所述用户名和所述登录密码。
14.根据权利要求8-13任一项所述的数据库间的语句转换方法,其特征在于,还包括:
接收所述第二数据库执行所述第二语句的执行结果;
返回所述执行结果。、
15.一种终端,其特征在于,包括如权利要求1-7任一所述的系统。
16.一种终端,其特征在于,包括处理器、存储器以及存储在存储器上可在处理器上运行的程序,所述处理器执行所述程序时实现权利要求8-14任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910057845.7A CN109857757A (zh) | 2019-01-22 | 2019-01-22 | 数据库间的语句转换方法、系统和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910057845.7A CN109857757A (zh) | 2019-01-22 | 2019-01-22 | 数据库间的语句转换方法、系统和终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857757A true CN109857757A (zh) | 2019-06-07 |
Family
ID=66895551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910057845.7A Pending CN109857757A (zh) | 2019-01-22 | 2019-01-22 | 数据库间的语句转换方法、系统和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857757A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061757A (zh) * | 2019-12-19 | 2020-04-24 | 用友网络科技股份有限公司 | 数据库的语言转换方法、装置、电子设备及存储介质 |
CN111125218A (zh) * | 2019-12-13 | 2020-05-08 | 成都安恒信息技术有限公司 | 一种基于协议解析的数据库兼容方法及其兼容性代理装置 |
CN112000690A (zh) * | 2020-08-19 | 2020-11-27 | 北京人大金仓信息技术股份有限公司 | 解析结构化操作语句的方法和装置 |
CN112948400A (zh) * | 2020-09-17 | 2021-06-11 | 深圳市明源云科技有限公司 | 一种数据库管理方法、数据库管理装置及终端设备 |
CN113992693A (zh) * | 2021-10-22 | 2022-01-28 | 中国科学院计算机网络信息中心 | 一种数据的传输方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561817A (zh) * | 2009-06-02 | 2009-10-21 | 天津大学 | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 |
CN101593180A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 将sparql查询转化成sql查询的方法和装置 |
CN105335366A (zh) * | 2014-05-30 | 2016-02-17 | 北大方正信息产业集团有限公司 | 一种sql语句处理方法、装置和服务器 |
US20170206245A1 (en) * | 2016-01-20 | 2017-07-20 | Oracle International Corporation | System and method for dynamic conversion of database accessing scripts during runtime in a mainframe rehosting platform |
-
2019
- 2019-01-22 CN CN201910057845.7A patent/CN109857757A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593180A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 将sparql查询转化成sql查询的方法和装置 |
CN101561817A (zh) * | 2009-06-02 | 2009-10-21 | 天津大学 | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 |
CN105335366A (zh) * | 2014-05-30 | 2016-02-17 | 北大方正信息产业集团有限公司 | 一种sql语句处理方法、装置和服务器 |
US20170206245A1 (en) * | 2016-01-20 | 2017-07-20 | Oracle International Corporation | System and method for dynamic conversion of database accessing scripts during runtime in a mainframe rehosting platform |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125218A (zh) * | 2019-12-13 | 2020-05-08 | 成都安恒信息技术有限公司 | 一种基于协议解析的数据库兼容方法及其兼容性代理装置 |
CN111061757A (zh) * | 2019-12-19 | 2020-04-24 | 用友网络科技股份有限公司 | 数据库的语言转换方法、装置、电子设备及存储介质 |
CN112000690A (zh) * | 2020-08-19 | 2020-11-27 | 北京人大金仓信息技术股份有限公司 | 解析结构化操作语句的方法和装置 |
CN112000690B (zh) * | 2020-08-19 | 2024-03-19 | 北京人大金仓信息技术股份有限公司 | 解析结构化操作语句的方法和装置 |
CN112948400A (zh) * | 2020-09-17 | 2021-06-11 | 深圳市明源云科技有限公司 | 一种数据库管理方法、数据库管理装置及终端设备 |
CN113992693A (zh) * | 2021-10-22 | 2022-01-28 | 中国科学院计算机网络信息中心 | 一种数据的传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857757A (zh) | 数据库间的语句转换方法、系统和终端 | |
JP7420842B2 (ja) | 自然言語理解(nlu)フレームワークにおける予測的類似性スコアリングサブシステム | |
Willcock et al. | An introduction to TTCN-3 | |
CN105404584B (zh) | Lpc静态代码检查方法、装置和系统 | |
US6665674B1 (en) | Framework for open directory operation extensibility | |
WO2018071594A1 (en) | Systems, apparatus, and methods for platform-agnostic message processing | |
WO2008116403A2 (en) | A method, system and equipment for client service | |
US7676519B2 (en) | Method and system for responding to requests relating to complex data maintained in a structured form | |
KR20220028038A (ko) | 자연어 이해 프레임워크에서 발화에 대한 복수의 의미 표현들의 도출 | |
WO2017000809A1 (zh) | 一种语言交互方法 | |
CN109145009B (zh) | 一种基于SQL检索ElasticSearch的方法 | |
CN112154420A (zh) | 自动智能云服务测试工具 | |
US8489631B2 (en) | Distributing a query | |
CN110019712A (zh) | 多意图查询方法和装置、计算机设备及计算机可读存储介质 | |
US11922209B2 (en) | Invoking functions of agents via digital assistant applications using address templates | |
US11949525B2 (en) | Group operation processing method, apparatus, and system, device, and storage medium | |
CN107784068A (zh) | 数据变化的获取方法、装置、存储介质、处理器及服务端 | |
CN110692042A (zh) | 在基于音频的计算环境中执行请求的动作的平台选择 | |
KR20190131270A (ko) | 질의자 의도를 이해하기 위한 구문 규칙 자동생성 장치 및 방법 | |
CN110110051A (zh) | 一种对话配置方法和服务器 | |
US10540157B2 (en) | Systems to remove object relational mappings from a software project | |
Fuchs | Domain Specific Languages for ad hoc Distributed Applications. | |
CN116346660A (zh) | 基于依赖替换服务的数据处理方法、装置、设备及介质 | |
CN115757995A (zh) | 无特征数据标签处理方法、装置、计算机设备及存储介质 | |
You et al. | FuzzDocs: an automated security evaluation framework for IoT |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |