【技术实现步骤摘要】
基于动态多数据源的数据库适配装置及方法
[0001]本专利技术涉及数据库
,具体地说是基于动态多数据源的数据库适配装置及方法。
技术介绍
[0002]在业务系统多元化的情况下,对数据处理、数据应用的需求和系统越来越多,对接动态多数据源需解决数据库语法不一致,驱动动态加载、驱动动态扩展的问题,开发过程复杂且易出错。
[0003]ORM(Object Relational Mapping)框架采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。主要为持久化类与表的映射关系,运行时将对象持久化到数据库中。利用该技术可以不用sql直接编码,能够通过操作对象直接操作数据库,屏蔽底层数据库的差异。该技术最大作用可将复杂SQL屏蔽,但是解决不了复杂SQL多数据源运行的问题。
[0004]Springboot多数据源配置,可解决多数据源、动态数据源的问题。系统应用的多数据源需在配置文件中进行数据源的配置,并可配置对应的路由。该技术适合业务系统多数据源固定的情况或读写分离的业 ...
【技术保护点】
【技术特征摘要】
1.基于动态多数据源的数据库适配装置,其特征在于用于封装底层数据库差异,所述装置包括:内存数据库,所述内存数据库用于存储数据源信息,所述数据源信息包括数据源编码和数据源具体信息,所述数据源具体信息包括数据库类型和数据库连接信息;数据库关键字库,所述数据库关键字库用于存储已适配数据库类型的所有关键字;语法差异库,所述语法差异库用于存储语法差异,所述语法差异为关系型数据库之间语法内容的差异;语法适配器,所述语法适配器与所述内存数据库、数据库关键字库以及语法差异库交互,用于接收由SQL语句和数据库信息组成的参数,所述数据库信息为数据库编码或数据源具体信息,用于基于数据库信息获取数据库类型,并基于数据库类型对SQL语句进行语法解析和转换,得到适配SQL语句;SQL执行器,所述SQL执行器与所述语法适配器交互,用于基于数据库类型加载驱动对应的数据库,数据库执行适配SQL语句后输出执行结果。2.根据权利要求1所述的基于动态多数据源的数据库适配装置,其特征在于所述语法差异的内容包括:分页差异,所述分页差异为不同数据库之间的分页语法;字段映射,所述字段映射为不同数据库不同字段类型映射,字段映射用于DDL语句执行,支撑数据库表创建;函数差异,所述函数差异为各类数据库内置函数映射信息,函数信息用于查询SQL执行;所述语法差异的内容分别以库表的形式存储于语法差异库中。3.根据权利要求1或2所述的基于动态多数据源的数据库适配装置,其特征在于所述语法适配器用于通过如下步骤得到适配SQL语句:基于数据库关键字库中已适配数据库类型的所有关键字,对SQL语句进行语句关键字解析,得到解析后SQL语句;如果数据库信息为数据源编码,则从内存数据库中查询对应的数据库类型,如果数据库信息为数据源具体信息,则读取数据库类型;基于数据库类型从语法差异库中查询对应的SQL语句模板;基于解析后SQL语句对SQL语句模板进行变量替换,得到适配SQL语句。4.根据权利要求1或2所述的基于动态多数据源的数据库适配装置,其特征在于所述SQL执行器用于通过如步骤实现基于数据库类型加载驱动对应的数据库:如果接收的数据库信息为数据源编码,从内存数据库中查询对应的数据库连接信息,如果接收的数据库信息为数据源具体信息,则读取数据库连接信息;基于数据库连接信息,判断连接池中是否存在连接;如果存在,将适配后SQL语句加载至对应数据库,以便于对应数据库执行适配后SQL语句并返回执行结果;如果不存在,基于数据库连接信息动态创建数据库驱动,并基于数据库驱动创建连接,建立连接后,将适配后SQL语句加载至对应数据库,以便于对应数据库执行适配SQL语句后输出执行结果。
5.根据权利要求1或2所述的基于动态多数据源的数据库适配装置,其特征在于所述装置适配有数据服务接口,所述数据服务接口保存于数据库配置表中,用于基于多源数据库表配置查询接口的出参、入参、请求方式以及请求URL信息,并用于基于出参及入参生成对应的SQL语句;所述装置启动时,基于数据源信息调用对应的数据服务接口,并将数据服务接口信息加载至内存数据库中,在内存数据库中,key为请求URL,value为对应的数据源信息或对应的数据源信息和SQL语句,所述装置基于传入的...
【专利技术属性】
技术研发人员:周双,张兆勇,
申请(专利权)人:浪潮软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。