掌桥专利:专业的专利平台
掌桥专利
首页

基于语法兼容转换的数据库替换方法、装置、介质及设备

文献发布时间:2023-06-19 10:58:46


基于语法兼容转换的数据库替换方法、装置、介质及设备

技术领域

本发明涉及数据库及协议转换技术领域,尤其是涉及一种基于语法兼容转换的数据库替换方法、装置、介质及设备。

背景技术

数据库系统由于实现和发展阶段的原因,会兼容不同的SQL标准,并且还会增加自己特有的语法和扩展特性。业务程序设计时都会确定要采用哪种数据库,为了保证效率和性能,会使用某些数据库特定的功能或者特性。随着业务的迭代和发展,业务对数据库的依赖,特别是对某种特定的数据库会越来越强,导致完全被该数据库“绑架”。数据库授权费用过高,原有的数据库厂商支持力度减弱或者由于政策的原因,用户要想从该数据库迁移下来,业务需要做大量的修改,甚至进行重构或者重写,并且很容易出错,甚至由于开发人员的迭代或者系统过期,开发商已经没有能力进行业务的数据库修改了。

现有专利申请CN108959470A公开了一种数据库数据跨平台迁移方法和装置,该方法包括:对于数据库数据的源端和数据库数据的目标端各自所在的平台环境进行扫描;根据扫描结果与迁移算法,生成迁移评估报告与建议的迁移方案;根据用户对建议的迁移方案的选择和迁移算法,生成迁移向导,其中,迁移向导提示用户采取相应的迁移方案,以实现跨平台半自动迁移数据库数据,该方法能够将数据库从其他平台进行迁移,但需要特定的迁移算法才可实现,难度大。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于语法兼容转换的数据库替换方法、装置、介质及设备,在不修改业务数据的基础上方便快捷实现不同数据库间的替换。

本发明的目的可以通过以下技术方案来实现:

一种基于语法兼容转换的Java数据库替换方法,包括以下步骤:

获取当前Java业务程序对原数据库的查询请求集合;

判断所述查询请求集合中是否存在与新数据库不兼容的请求指令,若是,则将所述不兼容的请求指令组成查询请求子集;

基于所述查询请求子集修改新数据库的配置信息;

将当前Java业务程序替换连接至新数据库。

进一步地,所述修改新数据库的配置信息后,验证所述查询请求集合与新数据库的兼容性。

进一步地,所述当前Java业务程序通过修改数据库配置字符串替换连接至新数据库。

进一步地,所述数据库配置字符串的信息包括驱动、IP和/或端口。

本发明还提供一种基于语法兼容转换的Java数据库替换装置,包括:

原请求获取模块,用于获取当前Java业务程序对原数据库的查询请求集合;

兼容判断模块,用于判断所述查询请求集合中是否存在与新数据库不兼容的请求指令,若是,则将所述不兼容的请求指令组成查询请求子集;

修改模块,用于基于所述查询请求子集修改新数据库的配置信息;

新连接创建模块,用于将当前Java业务程序替换连接至新数据库。

进一步地,该装置还包括:

验证模块,在所述修改新数据库的配置信息后,用于验证所述查询请求集合与新数据库的兼容性。

进一步地,所述当前Java业务程序通过修改数据库配置字符串替换连接至新数据库。

进一步地,所述数据库配置字符串的信息包括驱动、IP和/或端口。

本发明还提供一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如上所述基于语法兼容转换的Java数据库替换方法的指令。

本发明还提供一种电子设备,包括:

一个或多个处理器;

存储器;和

被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述基于语法兼容转换的Java数据库替换方法的指令。

与现有技术相比,本发明具有以下有益效果:

本发明能使新数据库修改并兼容原数据库的相关特性,让Java业务程序中依赖的原数据库的相关特性可以在新数据库中得到正确的响应。对应的,Java业务程序修改数据库配置字符串迁移到访问新数据库上时,可以准确、及时的得到正确的响应包,也就实现了不修改业务代码的情况下,替换数据库的目的,实现难度低。

附图说明

图1为本发明的流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例1

如图1所示,本实施例提供一种基于语法兼容转换的Java数据库替换方法,包括以下步骤:

S1、获取当前Java业务程序对原数据库(数据库A)的查询请求集合Q;

S2、判断所述查询请求集合Q中是否存在与新数据库不兼容的请求指令,若是,则将所述不兼容的请求指令组成查询请求子集s;

S3、基于所述查询请求子集s修改新数据库(数据库B)的配置信息;

S4、修改当前Java业务程序的数据库配置字符串,将当前Java业务程序替换连接至新数据库,数据库配置字符串的信息包括驱动、IP和/或端口等。

在优选实施方式中,该方法还包括:修改新数据库的配置信息后,验证所述查询请求集合与新数据库的兼容性。

上述方法可保证不修改业务代码的情况下,替换底层数据库。Java业务程序访问某个数据库是通过指定数据库配置字符串来指定需要访问的数据库的驱动、IP、端口等信息,由于各个数据库的实现和兼容标准并不一致,当业务程序用到一些特定数据库的特性时,例如Oracle的rownum等,就算把数据库配置字符串修改为访问指定的另一个数据库,例如MySQL,由于新的数据库无法支持这些特性,业务程序迁移到新的数据库还是会失败。上述方法在修改数据库配置字符串之前先对新数据库与原数据库的兼容性进行匹配,以便让Java业务程序中依赖的老数据库的相关特性可以在新数据库中得到正确的响应。Java业务程序修改数据库配置字符串迁移到访问新的数据库上来时,就可以准确、及时的得到正确的响应包,也就实现了不修改业务代码的情况下,替换数据库的目的。

上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。该介质可包含一电子设备中。

实施例2

本实施例提供一种基于语法兼容转换的Java数据库替换装置,包括原请求获取模块、兼容判断模块、修改模块和新连接创建模块,其中,原请求获取模块用于获取当前Java业务程序对原数据库的查询请求集合;兼容判断模块用于判断所述查询请求集合中是否存在与新数据库不兼容的请求指令,若是,则将所述不兼容的请求指令组成查询请求子集;修改模块用于基于所述查询请求子集修改新数据库的配置信息;新连接创建模块用于将当前Java业务程序替换连接至新数据库。

在优选实施方式中,该装置还包括验证模块,在所述修改新数据库的配置信息后,用于验证所述查询请求集合与新数据库的兼容性。

其余同实施例1。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

相关技术
  • 基于语法兼容转换的数据库替换方法、装置、介质及设备
  • 一种操作数据库的语法处理方法、装置、设备和存储介质
技术分类

06120112758645