通用跨数据库访问方法

文档序号:9506212阅读:1734来源:国知局
通用跨数据库访问方法【
技术领域
】[0001]本发明属于计算机信息
技术领域
,特别涉及通用跨数据库访问方法。【
背景技术
】[0002]随着计算机和软件技术的不断发展,软件领域的分工也越发精细,不同的行业、不同的项目甚至同一个项目的不同阶段的侧重点完全可能不一样,所采取的技术工具、数据模型和数据库管理系统都可能完全不尽相同。同时,大家熟知的各类数据库SQLServer、Oracle、DB2、Mysql、Postgresq在同一管理系统里面,需要进行跨数据库的通讯,在不同数据库之间方法,现有技术的访问语句及方法,存在通用性不强,必须关注各类数据库的字段类型等复杂对应,也同时必须关注各类数据库的函数及参数差异以及函数返回结果的一致性,造成了语句语法繁杂,进一步地,还必须考虑考虑同一数据库不同版本的差异,难于实现与各类数据库的无缝结合,开发学习成本高,用户要求高,造成用户体验差,扩展性差。【
发明内容】[0003]基于此,针对现有技术,本发明的所要解决的技术问题就是提供一种具有广泛通用性、与各类数据库实现无缝结合、零编码能快速开发、成本低的跨数据库访问方法。[0004]本发明的技术方案如下:一种通用跨数据库访问方法,其特征在于,包括如下步骤:1)、基于结构化查询语言SQL的包括数据操纵语言DML和数据库模式定义语言DDL语法,结合各类数据库增加预定义的函数及语法,定义和/或构建VStructuredQuevyLanguage(以下简称VSQL)语句;2)、语法解析引擎对VSQL语句进行VSQL词法和VSQL语法解析,对VSQL进行分词,并根据定义的语法对VSQL分词组织得到对应的语法树;3)、对象解析引擎对VSQ1语法树进行构造解析及对应各数据库的包括字段、函数、分页的SQL语法进行对象解析,得到原生SQL语句;4)、发送数据库执行,得到结果。[0005]在其中一个实施例中,在步骤1)中,所述数据操纵语言DML的指令包括新增、查询、更新、删除表数据、基本的函数,所述数据库模式定义语言DDL的指令包括新建表结构、修改表结构、更新表结构、删除表结构、存储过程、自定义函数调用、临时表使用,所述预定义的函数及语法包括临时表、存储过程调用、自定义函数调用、分页、分区统计函数。[0006]在其中一个实施例中,所述VSQL语句的表达式采用二叉树结构,并支持计算优先级查询。[0007]在其中一个实施例中,在步骤2)中,所述VSQL词法包括关键词(select、from、where)、字段(fUf2)、条件(Π、=、1)和函数(LENGTH,Π)。[0008]在其中一个实施例中,所述VSQL语句采用统一的表结构、索引定义、更新语法标准,统一的函数定义标准、多标关联更新语法标准、分页语法标准,统一的自定义函数、存储过程调用语法标准、运算符及注释格式标准。[0009]在其中一个实施例中,所述VSQL语句支持集成使用临时表、语法提示功能,并能提供VSQL查询分析插件、客户端数据库查询工具。[0010]在其中一个实施例中,所述VSQL语句提供应用程序编程接口API,所述API能对所述进VSQL语句行解析及二次加工。[0011]在其中一个实施例中,可访问支持的数据库类型包括SQLServer、Oracle、DB2、Mysql、Postgresql、Mongodb、H2、neo4j、达梦、南通。[0012]本发明的另一目的是提供一种使用上述访问方法的通用跨数据库平台。[0013]一种通用跨数据库平台,使用如上面所述的通用跨数据库访问方法。[0014]相对现有技术,本发明的有益效果如下:1、语法与各类数据库无缝结合,屏蔽各类数据库及版本的差异,减少学习成本统一的表结构、索引定义、更新语法标准,无需关注各类数据库的字段类型等复杂对应;统一的函数定义标准,无需关注各类数据库的函数及参数差异以及函数返回结果的一致性,例如精度、日期格式等。[0015]2、提供丰富的二次开发接口提供API接口对VSQL进行解析及二次加工支持二次开发;支持集成使用临时表,提高查询性能;提供VSQL查询分析插件智能分析VSQL的复杂度,为软件项目统计复杂度提供数据支持。[0016]3、良好的用户体验提供VSQL语法提示功能支持,完善VSQL错误提示,让编写VSQL有好的体验;提供客户端数据库查询工具支持数据查询、导入导出。[0017]4、良好的扩展性支持新数据库,只需要实现相应的接口就能快速支持,支持SQLServer、Oracle、DB2、Mysql、Postgresql、Mongodb、H2、neo4j、达梦、南通等数据库。【附图说明】[0018]图1为本发明的通用跨数据库访问方法的对应的VSQL的逻辑结构设计;图2为本发明的VSQL对象的整体结构;图3为本发明的VSQL的表达式结构;图4为本发明的VSQL支持计算优先级示例;图5为本发明的VSQL对象解析器。[0019]【具体实施方式】[0020]下面参考附图并结合实施例对本发明进行详细说明。[0021]SQL语言为结构化查询语言(StructuredQueryLanguage),较为广泛使用的一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。但单一的SQL语言无法实现与各类数据库的无缝结合,其必须关注各类数据库的字段类型、各类数据库的函数及参数差异以及函数返回结果的一致性,影响了效率。[0022]本发明构建了VStructuredQuevyLanguage(简称VSQL)语言,该语言设计采用统一的表结构、索引定义、更新语法标准,统一的函数定义标准,统一的多表关联更新语法标准、分页语法标准,统一的自定义函数、存储过程调用语法标准,统一的运算符及注释格式标准,并提供API结构进行解析和二次加工,支持集成使用临时表,能提供查询分析插件分析语句的复杂度,提供语法提示功能,提供客户端数据库查询工具,进行数据查询、导入B山寸出Ο[0023]图1给出了对应的访问VSQL逻辑结构,首先是根据设计进行生成VSQL指令,例如Selectlength(f1),f2fromtablelwherefl=l的VSQL语句。再次,生成的VSQL语句送语法解析引擎进行词法和语法解析,VSQL词法解析从,对VSQL进行分词:如关键字(select,from、where),字段(fl、f2),条件(Π、=、1),函数(LENGTH,fl);VS当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1