CN106649837B - 数据库兼容方法 - Google Patents
数据库兼容方法 Download PDFInfo
- Publication number
- CN106649837B CN106649837B CN201611250078.4A CN201611250078A CN106649837B CN 106649837 B CN106649837 B CN 106649837B CN 201611250078 A CN201611250078 A CN 201611250078A CN 106649837 B CN106649837 B CN 106649837B
- Authority
- CN
- China
- Prior art keywords
- database
- function
- library
- built
- common store
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库兼容方法,应用于计算机设备。所述计算机设备存储有数据库、通用存储函数库及数据库类型与所述通用存储函数库部署方式对应关系。所述方法包括:接收待兼容的数据库;判定待兼容的数据库类型;获取与所述数据库类型对应的部署方式及通用存储函数库;将所述通用存储函数库采用与所述数据库类型对应的部署方式部署到所述待兼容的数据库中。本发明能够解决现有技术中需要根据不同数据库的不同存储函数而开发多套数据操纵语言的技术问题,提高了应用程序的开发效率和兼容性。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据库兼容方法。
背景技术
为了满足不同企业的要求,在应用程序软件设计时需要兼顾数据库的兼容性和可移植性。由于不同数据库中内置存储函数、系统表和SQL语法等的不同,为了满足业务需求,很多应用程序需要开发多套数据操纵语言,这使得应用程序开发的效率、可维护性和兼容性降低。
现有技术中提供的方法支持的数据库和存储函数很少,并且由于各数据库中均存在内置存储函数,因而现有技术的解决方案依然不能解决数据库通用性和兼容性差的问题。
发明内容
为了克服现有技术中的上述不足,本发明目的在于提供一种数据库兼容方法,其能够解决现有技术中需要根据不同数据库的不同存储函数而开发多套数据操纵语言的技术问题,提高了应用程序的开发效率和兼容性。
为了实现上述目的,本发明较佳实施例采用的技术方案如下:
本发明较佳实施例提供一种数据库兼容方法,应用于计算机设备。所述计算机设备存储有数据库、通用存储函数库及数据库类型与所述通用存储函数库部署方式对应关系。所述方法包括:
接收待兼容的数据库;
判定待兼容的数据库类型,所述数据库类型包括mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库、神通数据库、derby数据库或者sqlite数据库;
获得与所述数据库类型对应的部署方式及通用存储函数库;
将所述通用存储函数库采用与所述数据库类型对应的部署方式部署到所述待兼容的数据库中。
在本发明较佳实施例中,所述方法还包括:
创建所述通用存储函数库;
所述创建所述通用存储函数库的步骤包括:
获取需要兼容的多个样本数据库,每个样本数据库包括有内置存储函数集;
基于内置存储函数集中各内置存储函数实现的功能对所述内置存储函数进行分类,得到不同类别的内置存储函数;
将各样本数据库中相同类别的内置存储函数进行合并,得到实现同一功能的内置存储函数集;
将各个功能的内置存储函数集基于一预设种类数据库对应的功能实现规则进行处理,得到通用存储函数库。
在本发明较佳实施例中,所述创建所述通用存储函数库的步骤还包括:
获取各个数据库对应的内置存储函数;
将各个数据库对应的内置存储函数与所述通用存储函数库进行对比,查找各个数据库中不存在的存储函数,或者功能、格式与所述通用存储函数库不同的存储函数;
响应对查找到的存储函数进行开发的操作,将开发后的所述存储函数添加到所述通用存储函数库中。
在本发明较佳实施例中,所述基于内置存储函数集中各内置存储函数实现的功能对所述内置存储函数进行分类,得到不同类别的内置存储函数的步骤中:
所述不同类别的函数包括:数学函数、字符串函数、日期与时间函数、判断函数、聚合函数、加解密函数或转换函数中的至少一种及多种的自由组合。
在本发明较佳实施例中,所述将各样本数据库中相同类别的内置存储函数进行合并,得到实现同一功能的内置存储函数集的步骤包括:
将各个数据库中相同类别内置存储函数的名字、参数、参数类型和返回值类型进行整合,得到实现同一功能的内置存储函数集。
在本发明较佳实施例中,所述将各个功能的内置存储函数集基于一预设种类数据库对应的功能实现规则进行处理,得到该预设种类数据库的通用存储函数库的步骤包括:
确定通用存储函数库的名字;
确定通用存储函数库的参数类型及返回值类型;
根据所述通用存储函数库的名字、所述通用存储函数库的参数类型及返回值类型确定所述通用存储函数库。
在本发明较佳实施例中,所述确定通用存储函数库的名字的方式包括:
根据各个数据库中的内置存储函数的功能和/或格式确定通用存储函数库的名字。
在本发明较佳实施例中,所述根据各个数据库中的内置存储函数的功能和/或格式确定通用存储函数库的名字的步骤包括:
当各个数据库中同一内置存储函数的功能与格式相同时,所述通用存储函数库的名字不变;
当一部分数据库中同一内置存储函数功能与格式相同,另一部分数据库中不存在所述内置存储函数时,所述通用存储函数库的名字与所述内置存储函数的名字相同;
当各个数据库中存在同一内置存储函数,但是所述内置存储函数的功能或格式不同时,重新定义所述通用存储函数库名字;
当各个数据库中的不同内置存储函数功能相同时,所述通用存储函数库名字按照通用格式定义;
当各个数据库中不存在同一功能的内置存储函数时,所述通用存储函数库为数据库的关键字或保留字之外的任意自定义名字。
在本发明较佳实施例中,所述确定通用存储函数库的参数类型及返回值类型的步骤包括:
响应基于预设数据库对通用存储函数库的参数类型和返回值类型进行设计的操作;
根据确定的通用存储函数库的参数类型和返回值类型,通过通用类型转换函数对未经过设计的参数类型和返回值类型进行转换。
在本发明较佳实施例中,所述将所述通用存储函数库采用与所述数据库类型对应的部署方式部署到所述待兼容的数据库中的步骤包括:
通过所述通用存储函数库的配置文件获取所述待兼容的数据库类型,执行与所述数据库类型对应的脚本将所述通用存储函数库应用到所述数据库中。其中,所述配置文件包括用于配置连接数据库所需的数据库连接参数信息,所述参数信息包括url、driverClassName、username以及password;
当所述数据库为mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库或神通数据库时,所述通用存储函数库以sql脚本的形式执行到对应的数据库中;
当所述数据库类型为derby数据库时,所述通用存储函数库在所述数据库中为jar包和sql脚本,则引入所述jar包,并将所述sql脚本执行到对应的数据库中;
当所述数据库类型为sqlite数据库时,所述通用存储函数库在所述数据库中为编译后的库文件,通过引用所述库文件执行到对应的应用程序中。
相对于现有技术而言,本发明具有以下有益效果:
本发明提供的数据库兼容方法,通过对所述通用存储函数库的开发,只需要完成一套数据操纵语言就可以兼容不同的数据库环境,提高了应用程序的开发效率和兼容性。即使在业务逻辑比较复杂,需要添加新的通用存储函数库时,只需要在各数据库中添加所述通用存储函数库即可,具有良好的扩展性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的计算机设备的结构框图;
图2为本发明较佳实施例提供的数据库兼容方法的一种流程示意图;
图3为本发明较佳实施例提供的数据库兼容方法的另一种流程示意图;
图4为图3中步骤S209包括的子步骤的一种流程示意图;
图5为图4中子步骤S2094包括的子步骤的流程示意图;
图6为图3中步骤S209包括的子步骤的另一种流程示意图。
图标:100-计算机设备;110-存储器;120-处理器;130-存储控制器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1是本发明较佳实施例提供的计算机设备100的结构框图。本发明实施例中的计算机设备100可以为用于实现本发明实施例的数据处理和存储的任意设备(例如,个人电脑(Personal Computer,PC))。
所述计算机设备100包括存储器110、处理器120及存储控制器130。其中,所述存储器110中存储有数据库、通用存储函数库及数据库类型与所述通用存储函数库部署方式对应关系。在本实施例中,所述数据库类型包括,但不限于mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库、神通数据库、derby数据库或者sqlite数据库。
所述存储器110、处理器120及存储控制器130相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,所述存储器110可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器110用于存储程序,所述处理器120在接收到执行指令后,执行所述程序。进一步地,上述存储器110内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。
所述处理器120可能是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP))、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规处理器等。
可以理解,图1所述的结构仅为示意,所述计算机设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参阅图2,图2为本发明较佳实施例提供的数据库兼容方法的流程示意图。所述方法的具体流程如下:
步骤S210,接收待兼容的数据库。
所述待兼容的数据库可以是开发应用程序中需要兼容的任意数据库。在本实施例的一种实施方式中,所述待兼容的数据库中的内置存储函数未通过通用存储函数库兼容。
请参阅图3,所述数据库兼容方法还包括:
步骤S209,创建通用存储函数库。
所述通用存储函数库用于在不同数据库中提供功能和格式相同的通用存储函数库。
具体地,请参阅图4,所述步骤S209包括子步骤S2091、子步骤S2092、子步骤S2093、子步骤S2094。所述步骤S209包括的子步骤的具体流程如下:
子步骤S2091,获取需要兼容的多个样本数据库,每个样本数据库包括有内置存储函数集。
在本实施例中,所述计算机设备100响应获取样本数据库的操作指令。所述样本数据库可以根据预开发的应用程序或者其它需要兼容的数据库进行确定,可以包括目前常用的数据库,例如,所述样本数据库可以包括mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库、神通数据库、derby数据库或者sqlite数据库等。
所述每个样本数据库中都包括有存储在所述样本数据库中供所有用户程序调用的子程序。所述子程序可以执行多个不同的功能,即为本发明实施例的内置存储函数集,所述内置存储函数集包括有多个不同功能的内置存储函数。
子步骤S2092,基于内置存储函数集中各内置存储函数实现的功能对所述内置存储函数进行分类,得到不同类别的内置存储函数。
具体地,根据所述内置存储函数实现的功能,可以将所述内置存储函数集中的各内置函数分为数学函数、字符串函数、日期与时间函数、判断函数、聚合函数、加解密函数、转换函数或其它功能函数,从而可以得到不同类别的内置存储函数。
子步骤S2093,将各样本数据库中相同类别的内置存储函数进行合并,得到实现同一功能的内置存储函数集。
在本实施例中,相同类别的内置存储函数(例如,数学函数)由功能不同的一系列函数组成。通过对各个相同类别的内置存储函数进行分析,得到每个类别的内置存储函数实现的所有功能,按照功能的不同对所有数据库中的内置存储函数进行整理,得到各个实现同一功能的内置存储函数集。其中,整理的内容包括内置存储函数的名字、参数、参数类型以及返回值类型。
子步骤S2094,将各个功能的内置存储函数集基于一预设种类数据库对应的功能实现规则进行处理,得到通用存储函数库。
在本实施例中,所述预设种类数据库可以采用mySQL数据库。具体地,请参阅图5,所述子步骤S2094包括子步骤S20941、子步骤S20942以及子步骤S20943。所述子步骤S2094包括的子步骤的具体流程如下:
子步骤S20941,确定通用存储函数库的名字。
具体地,通用存储函数库的名字可以根据各个数据库中的内置存储函数的功能和/或格式来确定。具体确定方式如下:
当各个数据库中同一内置存储函数的功能与格式相同时,所述通用存储函数库的名字不变。
当一部分数据库中同一内置存储函数功能与格式相同,另一部分数据库中不存在所述内置存储函数时,所述通用存储函数库的名字与所述内置存储函数的名字相同。
当各个数据库中存在同一内置存储函数,但是所述内置存储函数的功能或格式不同时,重新定义所述通用存储函数库名字。重新定义规则可以为在所述内置存储函数名字后添加“gfl”,或者其它通用的格式。
当各个数据库中的不同内置存储函数功能相同时,所述通用存储函数库名字按照通用格式定义。定义规则可以为mySQL中内置存储函数名字后添加“gfl”,或者其它通用的格式。
当各个数据库中不存在同一功能的内置存储函数时,所述通用存储函数库为数据库的关键字或保留字之外的任意自定义名字,即所述任意自定义名字中不可以为数据库的关键字或保留字。
子步骤S20942,确定通用存储函数库的参数类型及返回值类型。
具体地,在本实施例中,所述计算机设备100相应基于所述预设数据库对通用存储函数库的参数类型和返回值类型进行设计的操作。所述预设数据库可以采用数据类型要求严格的数据库,例如,所述预设数据库可以是derby数据库。根据所述预设数据库确定的通用存储函数库的参数类型和返回值类型,通过通用类型转换函数对未经过设计的其它内置存储函数的参数类型和返回值进行转换。
具体地,所述数据类型转换函数包括字符串转换成数字(to_number)函数、数字转换成字符串(to_char)函数、日期转换成时间戳(date_to_timestamp)函数、时间戳转换成日期(timestamp_to_date)函数、日期转换成字符串(dateformat_gfl)函数、字符串转换成日期(date_gfl)函数。
通过上述设计,所述通用存储函数库的参数类型和返回值类型可以进行确定。
子步骤S20943,根据所述通用存储函数库的名字、所述通用存储函数库的参数类型及返回值类型确定所述通用存储函数库。
通过对所述通用存储函数库的名字的确定以及对所述通用存储函数库的参数类型及返回值类型的确定可以得到基于一预设种类数据库看的通用存储函数库。
请参阅图6,所述步骤S209还包括子步骤S2095、子步骤S2096及子步骤S2097。所述子步骤的具体流程如下:
子步骤S2095,获取各个数据库对应的内置存储函数。
子步骤S2096,将各个数据库对应的内置存储函数与所述通用存储函数库进行对比,查找各个数据库中不存在的存储函数,或者功能、格式与所述通用存储函数库不同的存储函数。
子步骤S2097,响应对查找到的存储函数进行开发的操作,将开发后的所述存储函数添加到所述通用存储数据库中。
在本实施例中,通过将各个数据库中的内置存储函数与所述通用存储函数库进行对比,在查找到各个数据库中不存在的存储函数时对该存储函数进行开发,并添加到该存储函数对应数据库中的对应的功能的内置存储函数集中,实现了通用存储函数库对各个数据库的兼容。
请再次参阅图2,步骤S220,判定待兼容的数据库类型。
具体地,在本实施例中,所述数据库类型可以是,但不限于mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库、神通数据库、derby数据库或者sqlite数据库等。根据所述通用存储函数库的配置文件判断所述待兼容的数据库环境。所述配置文件为用于配置所述通用存储函数库连接所述待兼容的数据库所需要的参数信息,具体地,所述参数信息可以是java数据库连接参数信息。其中,所述参数信息包括url、driverClassName、username以及password。
所述url指定拟连接的待兼容的数据库的ip地址、端口、数据库实例名称等信息。
所述DriverClassName为待兼容数据库驱动程序的名字。
所述username和password分别为待兼容数据库用户及该用户对应的密码。
步骤S230,获取与所述数据库类型对应的部署方式及通用存储函数库。
具体地,由于通用存储函数库在不同种类的数据库中各不相同,在将所述通用存储函数库部署到数据库时即有不同的部署方式,本实施例通过所述计算机设备100的存储器110中存储的上述通用存储函数库以及数据库类型与所述通用存储函数库部署方式对应关系,获取到所述待兼容的数据库类型对应的部署方式。
步骤S240,将所述通用存储函数库采用与所述数据库类型对应的部署方式部署到所述待兼容的数据库中。
具体地,当所述待兼容的数据库为mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库或神通数据库时,所述通用存储函数库以sql脚本的形式执行到对应的数据库中;
当所述待兼容的数据库类型为derby数据库时,所述通用存储函数库在所述数据库中为jar包和sql脚本,则引入所述jar包,并将所述sql脚本执行到对应的数据库中;
当所述待兼容的数据库类型为sqlite数据库时,所述通用存储函数库在所述数据库中为编译后的库文件,通过引用所述库文件执行到对应的应用程序中。
综上所述,本发明提供的数据库兼容方法,通过对所述通用存储函数库的开发,只需要完成一套数据操纵语言就可以兼容不同的数据库环境,提高了应用程序的开发效率和兼容性。即使在业务逻辑比较复杂,需要添加新的通用存储函数库时,只需要在各数据库中添加所述通用存储函数库即可,具有良好的扩展性。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的方法,也可以通过其它的方式实现。以上所描述的方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (8)
1.一种数据库兼容方法,应用于计算机设备,所述计算机设备存储有数据库、通用存储函数库及数据库类型与所述通用存储函数库部署方式对应关系,其特征在于,所述方法包括:
创建通用存储函数库,所述通用存储函数库用于在不同数据库中提供功能和格式相同的通用存储函数库,所述创建所述通用存储函数库的步骤包括:获取需要兼容的多个样本数据库,每个样本数据库包括有内置存储函数集;基于内置存储函数集中各内置存储函数实现的功能对所述内置存储函数进行分类,得到不同类别的内置存储函数;将各样本数据库中相同类别的内置存储函数进行合并,得到实现同一功能的内置存储函数集;将各个功能的内置存储函数集基于一预设种类数据库对应的功能实现规则进行处理,得到通用存储函数库,所述将各个功能的内置存储函数集基于一预设种类数据库对应的功能实现规则进行处理,得到该预设种类数据库的通用存储函数库的步骤包括:确定通用存储函数库的名字;确定通用存储函数库的参数类型及返回值类型;根据所述通用存储函数库的名字、所述通用存储函数库的参数类型及返回值类型确定所述通用存储函数库;
接收待兼容的数据库;
判定待兼容的数据库类型,所述数据库类型包括mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库、神通数据库、derby数据库或者sqlite数据库;
获取与所述数据库类型对应的部署方式及通用存储函数库;
将所述通用存储函数库采用与所述数据库类型对应的部署方式部署到所述待兼容的数据库中。
2.根据权利要求1所述的数据库兼容方法,其特征在于,所述创建所述通用存储函数库的步骤还包括:
获取各个数据库对应的内置存储函数;
将各个数据库对应的内置存储函数与所述通用存储函数库进行对比,查找各个数据库中不存在的存储函数,或者功能、格式与所述通用存储函数库不同的存储函数;
响应对查找到的存储函数进行开发的操作,将开发后的所述存储函数添加到所述通用存储函数库中。
3.根据权利要求1所述的数据库兼容方法,其特征在于,所述基于内置存储函数集中各内置存储函数实现的功能对所述内置存储函数进行分类,得到不同类别的内置存储函数的步骤中:
所述不同类别的函数包括:数学函数、字符串函数、日期与时间函数、判断函数、聚合函数、加解密函数或转换函数中的至少一种及多种的自由组合。
4.根据权利要求1所述的数据库兼容方法,其特征在于,所述将各样本数据库中相同类别的内置存储函数进行合并,得到实现同一功能的内置存储函数集的步骤包括:
将各个数据库中相同类别内置存储函数的名字、参数、参数类型和返回值类型进行整合,得到实现同一功能的内置存储函数集。
5.根据权利要求1所述的数据库兼容方法,其特征在于,所述确定通用存储函数库的名字的方式包括:
根据各个数据库中的内置存储函数的功能和/或格式确定通用存储函数库的名字。
6.根据权利要求5所述的数据库兼容方法,其特征在于,所述根据各个数据库中的内置存储函数的功能和/或格式确定通用存储函数库的名字的步骤包括:
当各个数据库中同一内置存储函数的功能与格式相同时,所述通用存储函数库的名字不变;
当一部分数据库中同一内置存储函数功能与格式相同,另一部分数据库中不存在所述内置存储函数时,所述通用存储函数库的名字与所述内置存储函数的名字相同;
当各个数据库中存在同一内置存储函数,但是所述内置存储函数的功能或格式不同时,重新定义所述通用存储函数库名字;
当各个数据库中的不同内置存储函数功能相同时,所述通用存储函数库名字按照通用格式定义;
当各个数据库中不存在同一功能的内置存储函数时,所述通用存储函数库为数据库的关键字或保留字之外的任意自定义名字。
7.根据权利要求1所述的数据库兼容方法,其特征在于,所述确定通用存储函数库的参数类型及返回值类型的步骤包括:
响应基于预设数据库对通用存储函数库的参数类型和返回值类型进行设计的操作;
根据确定的通用存储函数库的参数类型和返回值类型,通过通用类型转换函数对未经过设计的参数类型和返回值类型进行转换。
8.根据权利要求1所述的数据库兼容方法,其特征在于,所述将所述通用存储函数库采用与所述数据库类型对应的部署方式部署到所述待兼容的数据库中的步骤包括:
通过所述通用存储函数库的配置文件获取所述待兼容的数据库类型,执行与所述数据库类型对应的脚本将所述通用存储函数库应用到所述数据库中,其中,所述配置文件包括用于配置连接数据库所需的数据库连接参数信息,所述参数信息包括url、driverClassName、username以及password;
当所述数据库为mysql数据库、oracle数据库、sqlserver数据库、postgreSQL数据库、达梦数据库、人大金仓数据库或神通数据库时,所述通用存储函数库以sql脚本的形式执行到对应的数据库中;
当所述数据库类型为derby数据库时,所述通用存储函数库在所述数据库中为jar包和sql脚本,则引入所述jar包,并将所述sql脚本执行到对应的数据库中;
当所述数据库类型为sqlite数据库时,所述通用存储函数库在所述数据库中为编译后的库文件,通过引用所述库文件执行到对应的应用程序中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611250078.4A CN106649837B (zh) | 2016-12-29 | 2016-12-29 | 数据库兼容方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611250078.4A CN106649837B (zh) | 2016-12-29 | 2016-12-29 | 数据库兼容方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106649837A CN106649837A (zh) | 2017-05-10 |
CN106649837B true CN106649837B (zh) | 2019-10-22 |
Family
ID=58837176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611250078.4A Active CN106649837B (zh) | 2016-12-29 | 2016-12-29 | 数据库兼容方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106649837B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888855A (zh) * | 2018-09-07 | 2020-03-17 | 福建天晴数码有限公司 | 一种php环境中兼容多版本数据库的方法及终端 |
CN109783074A (zh) * | 2018-12-11 | 2019-05-21 | 平安科技(深圳)有限公司 | 程序编写的数据类型转换方法、电子设备 |
CN110928899B (zh) * | 2019-11-29 | 2023-06-20 | 中孚安全技术有限公司 | 一种通用数据库备份方法及系统 |
CN113176876B (zh) * | 2021-04-23 | 2023-08-11 | 网易(杭州)网络有限公司 | 数据读写的方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645074A (zh) * | 2009-09-07 | 2010-02-10 | 浪潮集团山东通用软件有限公司 | 一种访问不同类型关系型数据库的方法 |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN103678425A (zh) * | 2012-09-26 | 2014-03-26 | Sap股份公司 | 多系统的集成分析 |
CN104615713A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮通用软件有限公司 | 一种基于多数据库类型的sql执行方法和装置 |
CN105677875A (zh) * | 2016-01-11 | 2016-06-15 | 清华大学 | 一种基于标准数据元素统一约束的可视化建模平台 |
-
2016
- 2016-12-29 CN CN201611250078.4A patent/CN106649837B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645074A (zh) * | 2009-09-07 | 2010-02-10 | 浪潮集团山东通用软件有限公司 | 一种访问不同类型关系型数据库的方法 |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN103678425A (zh) * | 2012-09-26 | 2014-03-26 | Sap股份公司 | 多系统的集成分析 |
CN104615713A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮通用软件有限公司 | 一种基于多数据库类型的sql执行方法和装置 |
CN105677875A (zh) * | 2016-01-11 | 2016-06-15 | 清华大学 | 一种基于标准数据元素统一约束的可视化建模平台 |
Non-Patent Citations (2)
Title |
---|
"企业信息化建设在港口管理中的应用——通过设计通用函数实现对数据库的操作";陈钧;《港口科技动态》;20030315;1-4页 * |
"数据库操纵程序库设计";张莹等;《吉林农业大学学报》;19971230;152-154页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106649837A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11645471B1 (en) | Determining a relationship recommendation for a natural language request | |
US10942708B2 (en) | Generating web API specification from online documentation | |
CN106649837B (zh) | 数据库兼容方法 | |
US11288319B1 (en) | Generating trending natural language request recommendations | |
US11886430B1 (en) | Intent-based natural language processing system | |
KR101168705B1 (ko) | 이동통신 단말기와 아이피 기반 정보 단말기를 이용한 맞춤, 지능형 심볼, 아이콘 인터넷 정보 검색시스템 | |
CN110083706B (zh) | 一种面向物联网微服务框架及其服务组合方法 | |
CN109542399A (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
US20110191312A1 (en) | Forking of search requests and routing to multiple engines through km server | |
US20190098068A1 (en) | Customizable load balancing in a user behavior analytics deployment | |
US11663172B2 (en) | Cascading payload replication | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
CN109446648A (zh) | 仿真服务建立方法及装置 | |
CN112219200A (zh) | 基于多个查询解释的基于方面的查询改进 | |
Abid et al. | Semantic web service composition using semantic similarity measures and formal concept analysis | |
US20100161671A1 (en) | System and method for generating hierarchical categories from collection of related terms | |
Ritter | From network mining to large scale business networks | |
CN106649835B (zh) | 数据库兼容装置 | |
CN109213782A (zh) | 搜索界面的配置、显示方法、装置及通信设备 | |
Pendyala et al. | Performing intelligent mobile searches in the cloud using semantic technologies | |
US20110246158A1 (en) | Method for simulating a complex system with construction of at least one model including at least one modelled router, corresponding computer software package and storage means | |
Huang et al. | Exploring the intellectual structure of cloud patents using non-exhaustive overlaps | |
Cipriani et al. | Exploiting constraints to build a flexible and extensible data stream processing middleware | |
WO2009097903A1 (en) | User interface for aggregating services in a data processing system | |
CN113779362A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210409 Address after: No. 333, Yunhua Road, high tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610041 Patentee after: CHENGDU WESTONE INFORMATION SAFETY TECHNOLOGY Co.,Ltd. Address before: Building 2, 333 Yunhua Road, high tech Zone, Chengdu, Sichuan 610000 Patentee before: CHENGDU 30SAN INFORMATION SYSTEM Co.,Ltd. |
|
TR01 | Transfer of patent right |