一种跨平台通用数据库访问中间件制造技术

技术编号:34452656 阅读:58 留言:0更新日期:2022-08-06 16:55
本发明专利技术公开了一种跨平台通用数据库访问中间件,所述中间件包括:通用数据访问组件、网络组件和数据库业务处理组件,其中通用数据访问组件为上层应用提供通用数据库访问接口,完成SQL语句的预处理;网络组件实现客户端与服务端通信以及访问连接池管理;数据库业务处理组件解析并执行SQL语句,完成相关业务的操作和底层数据库的访问。本发明专利技术为上层应用提供了一套数据库访问接口规范,能够适配所有拥有ODBC、JDBC访问引擎的数据库;并对国产化平台和国产数据库进行了重点适配,对其功能实现和特性都进行了最大程度的保留,相对于传统的通用数据库访问接口,提高了上层应用的数据库访问效率。问效率。问效率。

【技术实现步骤摘要】
一种跨平台通用数据库访问中间件


[0001]本专利技术涉及国产化数据库访问
,具体涉及一种跨平台通用数据库访问中间件。

技术介绍

[0002]数据库技术不断发展,数据库的应用越来越广泛,已渗透到各行各业。在实际功系统研发过程中,应用程序往往需要在不同平台操作系统平台上高效地访问几种不同的数据库管理系统,或者同一数据库的不同版本。逻辑过于复杂的数据库访问流程和库表查询语句设计,给应用程序开发者带来开发困难和软件兼容性问题,急需设计一套可以屏蔽各类数据库底层差异性,透明化数据库业务逻辑、资源调度,向上提供统一开发接口规范的数据库通用访问系统。
[0003]现有的通用数据库访问技术已经可以做到兼容使用各类数据库的基础功能,对应用者提供统一的二次开发接口。主流的数据库访问技术有不错的兼容性,但是牺牲了访问和查询等基础业务执行的效率,并且无法发挥各类数据库的优势特点,类似读写分离、分库分表、虚拟路由等数据库特色技术难以得到发挥。同时传统的数据库通用访问技术不支持跨平台使用,尤其对主流的国产化平台没有做过深入适配,对主流国产化数据库的访问模式、业务增删改查、连接管理等等功能的适配性开发也处于空白。

技术实现思路

[0004]为了解决上述问题,本专利技术提出了一种跨平台通用数据库访问中间件,包括通用数据访问组件、网络组件和数据库业务处理组件;其中通用数据访问组件为上层应用提供了通用数据库访问接口,完成SQL语句的预处理;网络组件负责实现客户端与服务端通信以及访问连接池管理;数据库业务处理组件解析并执行SQL语句,完成相关业务的操作和底层数据库的访问。
[0005]进一步地,所述通用数据访问组件为上层应用提供了提供通用数据库访问接口,具体由数据源、事务、命令、行集和错误5个对象组成。
[0006]进一步地,所述网络组件包括客户端和服务器端两部分,两部分之间通过基于TCP的Socket机制来实现跨平台网络通讯;采用面向连接的并发式多线程服务机制,针对每个客户请求提供一个服务线程,并通过连接池机制管理数据库连接。
[0007]进一步地,所述数据库业务处理组件采用AST语法树模型对SQL语句进行解析,分解成针对单库单表的基础数据库业务操作,并采用并发处理和分库分表技术进行执行。
[0008]进一步地,在通用访问接口、SQL语句解析和业务逻辑处理上对国产数据库进行了适配,所述国产数据库包括达梦、神通和金仓。
[0009]与现有技术相比,本专利技术具有以下有益效果:
[0010](1)为上层应用提供一套数据库访问接口规范,适配所有拥有ODBC、JDBC访问系统的数据库;
[0011](2)对国产化平台和国产数据库进行了重点适配,对其功能实现和特性都进行了最大程度的保留,提高了增删改查等业务处理性能;
[0012](3)为每一位软件开发者带来便利,减少工程的人力成本和时间成本,提升软件开发的效率,提升软件系统安全性和稳定性。
附图说明
[0013]图1为本专利技术的通用数据库访问中间件的业务逻辑流程图。
[0014]图2为本专利技术的通用数据访问组件包含的对象及方法示意图。
[0015]图3为数据库业务处理组件逻辑流程图。
[0016]图4为AST语法树示意图。
[0017]图5为SQL语句切分示意图。
具体实施方式
[0018]为了解决现有通用数据库访问技术中遇到的兼容性、效率等实际应用问题,本专利技术设计了一种能够提高通用数据库访问技术兼容性和性能的方案,实现了在国产化平台上的全面适配,并且在应用层面统一了访问接口规范,为上层应用屏蔽底层数据库系统差异,可移植、可扩展、可跨各类操作系统平台,真正意义上实现了快捷简化、灵活高效地使用数据库。
[0019]以下结合附图对本专利技术的跨平台通用数据库访问中间件的具体实施方式做详细说明。
[0020]实施例一
[0021]如图1所示,通用数据库访问中间件主要由通用数据访问组件、网络组件、数据库业务处理组件三部分组成,其中网络组件含客户端网络组件和服务端网络组件。在整体系统架构上,通用数据库访问中间件采用的是C/S架构,在客户端部署通用数据访问组件和客户端网络组件,服务器端则部署服务器网络组件和数据库业务处理组件。
[0022]所述通用数据访问组件为上层应用提供了通用数据库访问接口,完成SQL语句的预处理,包括业务执行的一些初期参数如库表信息,类型,位置等;网络组件负责实现客户端与服务端通信以及访问连接池管理;数据库业务处理组件负责解析、执行SQL语句,完成相关业务操作和底层数据库访问。其每个组件的功能和设计将在下文中详细说明。
[0023]a)通用数据访问组件
[0024]通用数据访问组件为上层应用提供了通用数据库访问接口,这些接口比ODBC、OLE DB、ADO更加抽象和简捷,主要由数据源(Environment)、事务(Transaction)、命令(Command)、行集(Rowset)、错误(Error)等5个对象组成,图2列出了各个对象包含的主要方法。
[0025]基于通用数据库访问接口的一次数据访问流程的伪代码具体为:
[0026]pEnv=new DBO

Environment;//建立数据库访问所需资源
[0027]pDataSource

>Connect(DataSource,Name,PWD);//和数据库建立连接
[0028]pDataSource

>TransCreate(&pTran);
[0029]pTran

>TranBegin();//启动事务
[0030]pTran

>CreateCommand(&pComm);
[0031]pComm

>SetCommandText(szCommandText)
[0032]pComm

>Execute(&pRowset)//执行命令
[0033]pRowset

>MoveFirst()
[0034]PTran

>Commit();//提交事务
[0035]pTran

>DisConnect();//断开连接
[0036]当调用CDataSource::Connect()时,上层应用无须了解它所访问的数据所在数据库的任何特定信息,如数据库类型、版本、平台,只需输入映射后的3个参数:数据源名、用户名和密码,实现了数据库的透明化和编程的简单化。
[0037]b)网络组件
[0038]网络组件负责将用户的数据库访问请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨平台通用数据库访问中间件,其特征在于,包括通用数据访问组件、网络组件和数据库业务处理组件;其中通用数据访问组件为上层应用提供通用数据库访问接口,完成SQL语句的预处理;网络组件负责实现客户端与服务端通信以及访问连接池管理;数据库业务处理组件解析并执行SQL语句,完成相关业务的操作和底层数据库的访问。2.根据权利要求1所述的跨平台通用数据库访问中间件,其特征在于,所述通用数据访问组件为上层应用提供了提供通用数据库访问接口,具体由数据源、事务、命令、行集和错误5个对象组成。3.根据权利要求2所述的跨平台通用数据库访问中间件,其特征在于,所述网络组件包括客户端和...

【专利技术属性】
技术研发人员:黄大丰姜天帅靖文尤淳
申请(专利权)人:中国电子科技集团公司第十四研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1