CN110399411B - 数据源切换方法、装置、设备及计算机可读存储介质 - Google Patents

数据源切换方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN110399411B
CN110399411B CN201910542806.6A CN201910542806A CN110399411B CN 110399411 B CN110399411 B CN 110399411B CN 201910542806 A CN201910542806 A CN 201910542806A CN 110399411 B CN110399411 B CN 110399411B
Authority
CN
China
Prior art keywords
database
dialect
data
crud
operation request
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
Application number
CN201910542806.6A
Other languages
English (en)
Other versions
CN110399411A (zh
Inventor
付明建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201910542806.6A priority Critical patent/CN110399411B/zh
Publication of CN110399411A publication Critical patent/CN110399411A/zh
Application granted granted Critical
Publication of CN110399411B publication Critical patent/CN110399411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual 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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及区块链技术领域,公开了一种数据源切换方法,包括以下步骤:接收crud操作请求;基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件;解析所述mapper文件,获得数据库方言,其中,不同数据库对应不同数据库方言;基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库;基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作。本发明还公开了一种数据源切换装置、设备及计算机可读存储介质。本发明不仅实现数据源之间的隔离,结合密码管理平台实现对数据库访问密码的安全管理,避免将数据库密码写在配置文件中可能引起的安全问题。

Description

数据源切换方法、装置、设备及计算机可读存储介质
技术领域
本发明涉及区块链技术领域,尤其涉及数据源切换方法、装置、设备及计算机可读存储介质。
背景技术
目前,随着信息技术的发展,企业的各种业务不仅产生越来越多的数据,业务运营本身也越来越依赖于数据的利用。数据库是最常用的数据存储系统,业务系统通过查询数据库中得到允许所需的数据,允许产生的数据会写入到数据库中存储。
但是当前市面上大部分连接多数据源,是实现数据库的主从分离,而且由于是基于springboot的数据源配置,没有实现多环境数据源的安全管理,还要就是基于双master数据源的配置,实现分数据库分表组件,无法做到多数据源的自由切换和多环境管理。
发明内容
本发明的主要目的在于提供一种数据源切换方法、装置、设备及计算机可读存储介质,旨在解决如何对多数据源的安全管理。
为实现上述目的,本发明提供的一种数据源切换方法,所述数据源切换方法包括以下步骤:
接收crud操作请求;
基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件;
解析所述mapper文件,获得数据库方言,其中,不同数据库对应不同数据库方言;
基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库;
基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作,其中,所述crud操作包括对数据库执行增加数据操作、读取数据操作、修改数据操作、删除数据操作中的任意一种或多种。
可选地,在所述接收数据库crud操作请求的步骤之前,还包括:
基于数据库连接池Druid,配置主从数据源。
可选地,在所述接收数据库crud操作请求的步骤之前,还包括:
将数据库的访问密码存储在密码管理平台。
可选地,在所述接收crud操作请求的步骤之后,还包括:
判断所述crud操作请求的类型,其中,所述crud操作请求的类型分为写操作请求和读操作请求,写操作请求包括对数据库的增加数据、修改数据或删除数据请求,读操作包括读取数据请求;
若所述crud操作请求为写操作请求,则选择主数据库;
若所述crud操作请求为读操作请求,则选择从数据库。
可选地,所述基于所述数据库方言,查询所述数据库方言对应的数据库并切换到所述所述数据库方言对应的数据库包括:
基于所述数据库连接池Druid,查询所述数据库方言对应的数据库;
若所述数据库方言对应的数据库存在访问密码,则识别预置的profile值以确定当前工作环境,其中,所述工作环境包括开发环境、测试环境或生产环境;
基于当前工作环境,从所述密码管理平台获取对应当前工作环境的数据库访问密码;
基于所述数据库访问密码,访问所述数据库方言对应的数据库。
可选地,所述基于所述数据库方言,查询所述数据库方言对应的数据库并切换到所述所述数据库方言对应的数据库包括:
基于所述数据库方言,查询所述数据库方言对应的数据库;
获取所述数据库方言对应的数据库的访问路径;
基于所述访问路径,访问所述数据库方言对应的数据库。
可选地,在所述对所述数据库方言对应的数据库进行所述数据库crud操作请求的数据库crud操作的步骤之后,还包括:
监控所述数据库中SQL执行情况,得到监控数据;
对所述监控数据进行渲染处理,获得反映所述SQL执行情况的HTML图表;
展示所述HTML图表。
进一步地,为实现上述目的,本发明还提供一种数据源切换装置,所述数据源切换装置包括:
接收模块,用于接收crud操作请求;
获取模块,用于基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件;
解析模块,用于解析所述mapper文件,获得数据库方言,其中,不同数据库对应不同数据库方言;
切换模块,用于基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库;
操作模块,用于基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作,其中,所述crud操作包括对数据库执行增加数据操作、读取数据操作、修改数据操作、删除数据操作中的任意一种或多种。
可选地,所述数据源切换装置还包括:
第一配置模块,用于基于数据库连接池Druid,配置主从数据源。
可选地,所述数据源切换装置还包括:
第二配置模块,用于将数据库的访问密码存储在密码管理平台。
可选地,所述数据源切换装置还包括:
判断模块,用于判断所述crud操作请求的类型,其中,所述crud操作请求的类型分为写操作请求和读操作请求,写操作请求包括对数据库的增加数据、修改数据或删除数据请求,读操作包括读取数据请求;
第一选择模块,用于若所述crud操作请求为写操作请求,则选择主数据库;
第二选择模块,用于若所述crud操作请求为读操作请求,则选择从数据库。
可选地,所述切换模块包括:
第一查询单元,用于基于所述数据库连接池Druid,查询所述数据库方言对应的数据库;
识别单元,用于若所述数据库方言对应的数据库存在访问密码,则识别预置的profile值以确定当前工作环境,其中,所述工作环境包括运行开发环境、测试环境或生产环境;
第一获取单元,用于基于当前工作环境,从所述密码管理平台获取对应当前工作环境的数据库访问密码;
第一访问单元,用于基于所述数据库访问密码,访问所述数据库方言对应的数据库。
可选地,所述切换模块还包括:
第二查询单元,用于基于所述数据库方言,查询所述数据库方言对应的数据库;
第二获取单元,用于获取所述数据库方言对应的数据库的访问路径;
第二访问单元,用于基于所述访问路径,访问所述数据库方言对应的数据库。
可选地,所述数据源切换装置还包括:
监控模块,用于监控所述数据库中SQL执行情况,得到监控数据;
渲染模块,用于对所述监控数据进行渲染处理,获得反映所述SQL执行情况的HTML图表;
展示模块,用于展示所述HTML图表。
进一步地,为实现上述目的,本发明还提供一种数据源切换设备,所述数据源切换设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的数据源切换程序,所述数据源切换程序被所述处理器执行时实现如上述任一项所述的数据源切换方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据源切换程序,所述数据源切换程序被处理器执行时实现如上述任一项所述的数据源切换方法的步骤。
本发明基于数据库连接池Druid,配置多个数据源,接收crud操作请求,基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件,解析所述mapper文件,获得数据库方言,然后基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库,基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作。本发明不仅实现数据源之间的隔离,结合密码管理平台实现对数据库访问密码的安全管理,避免将数据库密码写在配置文件中可能引起的安全问题。
附图说明
图1为本发明实施例方案涉及的数据源切换设备运行环境的结构示意图;
图2为本发明数据源切换方法第一实施例的流程示意图;
图3为本发明数据源切换方法第二实施例的流程示意图;
图4为本发明数据源切换方法第三实施例的流程示意图;
图5为本发明数据源切换方法第四实施例的流程示意图;
图6为本发明数据源切换方法第五实施例的流程示意图;
图7为本发明数据源切换装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据源切换设备。
参照图1,图1为本发明实施例方案涉及的数据源切换设备运行环境的结构示意图。
如图1所述,该数据源切换设备包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的数据源切换设备的硬件结构并不构成对数据源切换设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。其中,操作系统是管理和控制数据源切换设备和软件资源的程序,支持数据源切换程序以及其它软件和/或程序的运行。
在图1所示的数据源切换设备的硬件结构中,网络接口1004主要用于接入网络;用户接口1003主要用于侦测确认指令和编辑指令等。而处理器1001可以用于调用存储器1005中存储的数据源切换程序,并执行以下数据源切换方法的各实施例的操作。
基于上述数据源切换设备硬件结构,提出本发明数据源切换方法的各个实施例。
参照图2,图2为本发明数据源切换方法第一实施例的流程示意图。本实施例中,所述数据源切换方法包括以下步骤:
步骤S10:接收crud操作请求;
目前,随着信息技术的发展,企业的各种业务不仅产生越来越多的数据,业务运营本身也越来越依赖于数据的利用。数据库是最常用的数据存储系统,业务系统通过查询数据库中得到允许所需的数据,允许产生的数据会写入到数据库中存储。但是,当前市面上大部分连接多数据源,是实现数据库的主从分离,而且由于是基于springboot的数据源配置,没有实现多环境数据源的安全管理,还要就是基于双master数据源的配置,实现分数据库分表组件,无法做到多数据源的自由切换和多环境管理。
本实施例中,当在做计算处理时,需要对数据库的数据进行增加数据、读取查询数据、修改更新数据和删除数据时,即需要对数据做crud操作时,发送crud操作请求,服务器接收所述crud操作请求,对相应数据库进行所述crud操作请求,其中,所述crud操作请求可以是对数据的增加、读取、修改或删除的一种或多种,具体视用户实际需要而定。
步骤S20:基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件;
本实施例中,基于接收到的所述数据库crud操作请求,基于所述数据库crud操作请求的实际接口,查找所述数据库crud操作请求实际接口对应的package包,获取所述package包的mapper文件。其中,不同的数据源,对应不同的package包,数据库crud操作请求的接口与package包为一对一的关系。
例如,当接收到用户对数据库数据的crud操作请求时,基于所述crud操作请求的实际接口,找到所述crud操作请求实际接口对应的package包,获取所述package包的mapper文件。
步骤S30:解析所述mapper文件,获得数据库方言,其中,不同数据库对应不同的数据库方言;
本实施例中,通过crud操作请求的实际接口,查找对应的package,进而获取所述package的mapper文件,基于所述mapper文件,对mapper文件进行解析,获取mapper文件中的dialect。其中,由于不同数据库,在SQL语句的设计存在差异,就比如不同地方的人说不同的方言,而hibernate会所有数据库的“方言”,通过所述dialect向hibernate指明,当前对应的数据库方言,查找使用所述dialect指明的数据库方言的数据库。
例如,当接收到crud操作请求时,可以根据crud操作请求的实际借口,找到对应接口的package包下的mapper文件,进而从mapper文件解析获取数据库方言,根据数据库方言获取所述crud操作请求的目标数据所在数据库,进而访问所述数据库,对所述数据库进行所述crud操作。
步骤S40:基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库;;
本实施例中,基于解析所述mapper文件获取的所述数据库方言,根据连接数据库时必须对应的数据库方言连接对应的数据库,查询所述数据库方言中指向的数据库,访问所述数据库方言中指向的数据库。
需要知道的是,数据库方言是hibernate为了更好适配各种关系数据库,针对每种数据库都指定了一个数据库方言,每个数据库方言对应一种数据库,其中,hibernate是一个开放源代码的对象关系映射框架。
步骤S50:基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作,其中,所述crud操作包括对数据库执行增加数据操作、读取数据操作、修改数据操作、删除数据操作中的任意一种或多种。
本实施例中,基于所述数据库方言所指向的数据库,获取该数据库的访问路径,进而根据接收的所述crud操作请求,对所述数据库方言对应的数据库执行crud操作。
本实施例基于数据库连接池Druid,配置多个数据源,接收crud操作请求,基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件,解析所述mapper文件,获得数据库方言,然后基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库,基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作。本发明不仅实现数据源之间的隔离,结合密码管理平台实现对数据库访问密码的安全管理,避免将数据库密码写在配置文件中可能引起的安全问题。
进一步地,在本发明数据源切换方法第二实施例中,本实施例中,在上述步骤S10之前包括:
基于数据库连接池Druid,配置主从数据源。
本实施例中,基于数据库连接池Druid,创建主从数据库的连接,使所述连接支持主从数据源,其中,所述数据源的类型不限。比如,根据数据源的类型不同,可以是现场获取的实测数据,如野外实地勘测、量算数据,台站的观测记录数据,遥测数据等;也可以是利用物理和化学方法分析测定的分析测定数据;还可以是各种地形图和专题地图的图像数据;此外,还有各种类型的统计报表、社会调查的统计调查数据;由地面、航空货航天遥感获得的遥感数据,如全国范围的土地资源清查及详查数据,地面调查、地图测绘等数据;等等。
需要知道的是,数据源可以是任何数据类型,具体类型根据数据的不同而不同。
进一步地,在本发明数据源切换方法一实施例中,本实施例中,在上述步骤S10之前还包括:
将数据库的访问密码存储在密码管理平台。
本实施例中,由于直接把数据库访问密码写在配置文件中,容易导致安全问题,因此,可将数据库访问密码存储在密码管理平台,当需要用到数据库访问密码访问对应所述数据库访问密码的数据库时,通过指定口令,从所述密码管理平台获取所需数据库访问密码,进而访问对应所述数据库访问密码的数据库。
参照图3,图3为本发明数据源切换方法另一实施例的流程示意图。本实施例中,在上述步骤S10之后还包括:
步骤S01:判断所述crud操作请求的类型,其中,所述crud操作请求的类型分为写操作请求和读操作请求,写操作请求包括对数据库的增加数据、修改数据或删除数据请求,读操作包括读取数据请求;
本实施例中,当接收到crud操作请求时,判断所述crud操作请求的类型,若所述crud操作请求是对数据库增加数据、修改数据或删除数据的请求,则属于写操作请求;若所述crud操作请求时对数据库数据的读取,则属于读操作请求。。
步骤S02:若所述crud操作请求为写操作请求,则选择主数据库;
本实施例中,基于所述数据库crud操作请求,判断所述crud操作请求的类型,若所述crud操作请求为写操作请求,则切换到主数据库,在主数据库中进行对数据的增加、删除、修改操作,然后将操作结束后的数据同步到从数据库中。
步骤S03:若所述crud操作请求为读操作请求,则选择从数据库。
本实施例中,基于所述数据库crud操作请求,判断所述crud操作请求的类型,若所述crud操作请求为读操作请求,则切换到从数据库,在从数据库中读取数据。
参照图4,图4为本发明数据源切换方法第三实施例的流程示意图。本实施例中,在上述步骤S40包括:
步骤S401:基于所述数据库连接池Druid,查询所述数据库方言对应的数据库;
本实施例中,基于所述数据库连接池Druid,基于所述数据库方言,查询所述数据库方言对应的数据库,根据连接数据库时必须对应的数据库方言连接对应的数据库,查询所述数据库方言中指向的数据库,访问所述数据库方言中指向的数据库。
步骤S402:若所述数据库方言对应的数据库存在访问密码,则识别预置的profile值以确定当前工作环境,其中,所述工作环境包括开发环境、测试环境或生产环境;
本实施例中,根据所述数据库方言,访问所述数据库方言对应的数据库时,若发现所述数据库方言对应的数据库存在访问密码,则识别预置的profile值,确定当前工作环境,其中,工作环境可以是开发环境、测试环境、生成环境。
进一步地,不同的工作环境设置不同的数据库密码,连接不同的数据库。
步骤S403:基于当前工作环境,从所述密码管理平台获取对应当前工作环境的数据库访问密码;
基于当前工作环境,从所述密码管理平台获取对应所述当前工作环境的数据库密码。其中,由于直接把数据库访问密码写在配置文件中,容易导致安全问题,因此,将数据库访问密码存储在密码管理平台,由所述密码管理平台对数据库访问密码进行安全管理。当需要访问密码进行访问数据库时,再从所述密码管理平台获取数据库访问密码。
步骤S404:基于所述数据库访问密码,访问所述数据库方言对应的数据库。
本实施例中,基于从密码管理平台获取对应当前工作环境的数据库密码,获取对应所述数据库密码的数据库访问路径,进而基于所述数据库访问路径,安全访问所述数据库。
例如,当前查询到数据库方言对应的数据库设置有访问密码,识别预置的profile值,确定当前工作环境为测试环境,从密码管理平台获取测试环境的数据库访问密码,再基于所述数据库访问密码,访问所述数据库访问对应的数据库。
参照图5,图5为本发明数据源切换方法第四实施例的流程示意图。本实施例中,上述步骤S40还包括:
步骤S4001:基于所述数据库方言,查询所述数据库方言对应的数据库;
步骤S4002:获取所述数据库方言对应的数据库的访问路径;
步骤S4003:基于所述访问路径,访问所述数据库方言对应的数据库。
本实施例中,基于不同数据库对应不同的数据库方言,解析所述mapper文件,获取所述mapper文件中的数据库方言,基于所述数据库方言,查询所述数据库方言指向的数据库,进而获取所述数据库方言指向的数据库访问路径,根据所述访问路径,访问所述数据库方言指向的数据库。
例如,接收一个数据库crud操作请求,基于这个数据库crud操作请求的实际接口,查询对应的package包,获取所述package包下的mapper文件,通过解析所述mapper文件,获取所述mapper文件中的数据库方言,基于所述数据库方言,查询所述数据库方言指向的数据库,进而获取所述数据库方言指向的数据库访问路径,根据所述访问路径,访问所述数据库方言指向的数据库,进行所述数据库crud操作请求的数据库crud操作。
参照图6,图6为本发明数据源切换方法第五实施例的流程示意图。本实施例中,在上述步骤S50之后还包括:
步骤S100:监控所述数据库中SQL执行情况,得到监控数据;
步骤S200:对所述监控数据进行渲染处理,获得反映所述SQL执行情况的HTML图表;
步骤S300:展示所述HTML图表。
本实施例中,基于数据库连接池Druid,监控所述数据库的SQL执行情况,统计监控所述数据库中SQL执行情况的数据,进而对所述监控所述数据库中SQL执行情况的数据进行渲染处理,生成反映所述SQL执行情况的HTML图表,然后将所述反映所述SQL执行情况的HTML图表展示给用户。其中,监控数据库中SQL执行情况可以是监控一条SQL已执行的次数、本次执行的累计时间、本条SQL执行最慢的一次耗时、执行出现错误的次数等。
例如,监控A数据库中SQL执行情况,获得A数据库中SQL执行情况的监控数据,统计这份监控数据中的SQL运行的各项指标数据,进而对统计结果进行渲染处理,生成可视化的HTML图表,展示给用户。
进一步地,基于数据库连接池Druid的监控功能,监控数据库SQL执行情况,经过渲染处理,以图表的形式展示监控数据,能够详细展示SQL的执行性能,这对于线上分析数据库访问性能很有帮助。
本发明还提供一种数据源切换装置。
参照图7,图7为本发明数据源切换装置一实施例的功能模块示意图。本实施例中,所述数据源切换装置包括:
接收模块10,用于接收crud操作请求;
获取模块20,用于基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件;
解析模块30,用于解析所述mapper文件,获得数据库方言,其中,不同数据库对应不同数据库方言;
切换模块40,用于基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库;
操作模块50,用于基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作,其中,所述crud操作包括对数据库执行增加数据操作、读取数据操作、修改数据操作、删除数据操作中的任意一种或多种。
本实施例中,接收模块10接收数据库crud操作请求,获取模块20基于所述数据库crud操作请求的接口,查询对应的package包,获取所述package包的mapper文件,由解析模块30对所述mapper文件进行解析,获得所述mapper文件中的数据库方言,切换模块40再基于解析模块30解析得到的所述数据库方言,查询所述数据库方言对应的数据库并切换到所述数据库,由操作模块50基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作。
本发明还提供一种计算机可读存储介质。
本实施例中,所述计算机可读存储介质上存储有数据源切换程序,所述数据源切换程序被处理器执行时实现如上述任一项实施例中所述的数据源切换方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。

Claims (8)

1.一种数据源切换方法,其特征在于,所述数据源切换方法包括以下步骤:
接收crud操作请求;
基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件,其中,所述crud操作请求的接口与所述对应的预置package包一一对应;
解析所述mapper文件,获得数据库方言,其中,不同数据库对应不同数据库方言;
基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库;
基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作,其中,所述crud操作包括对数据库执行增加数据操作、读取数据操作、修改数据操作、删除数据操作中的任意一种或多种;
所述接收crud操作请求的步骤之前,还包括:
基于数据库连接池Druid,配置主从数据源;
所述接收crud操作请求的步骤之前,还包括:
将数据库的访问密码存储在密码管理平台。
2.如权利要求1所述的数据源切换方法,其特征在于,在所述接收crud操作请求的步骤之后,还包括:
判断所述crud操作请求的类型,其中,所述crud操作请求的类型分为写操作请求和读操作请求,写操作请求包括对数据库的增加数据、修改数据或删除数据请求,读操作包括读取数据请求;
若所述crud操作请求为写操作请求,则选择主数据库;
若所述crud操作请求为读操作请求,则选择从数据库。
3.如权利要求1所述的数据源切换方法,其特征在于,所述基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库包括:
基于所述数据库连接池Druid,查询所述数据库方言对应的数据库;
若所述数据库方言对应的数据库存在访问密码,则识别预置的profile值以确定当前工作环境,其中,所述工作环境包括开发环境、测试环境或生产环境;
基于当前工作环境,从所述密码管理平台获取对应当前工作环境的数据库访问密码;
基于所述数据库访问密码,访问所述数据库方言对应的数据库。
4.如权利要求1所述的数据源切换方法,其特征在于,所述基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库包括:
基于所述数据库方言,查询所述数据库方言对应的数据库;
获取所述数据库方言对应的数据库的访问路径;
基于所述访问路径,访问所述数据库方言对应的数据库。
5.如权利要求1所述的数据源切换方法,其特征在于,在所述对所述数据库方言对应的数据库执行crud操作的步骤之后,还包括:
监控所述数据库中SQL执行情况,得到监控数据;
对所述监控数据进行渲染处理,获得反映所述SQL执行情况的HTML图表;
展示所述HTML图表。
6.一种数据源切换装置,其特征在于,所述数据源切换装置包括:
接收模块,用于接收crud操作请求;
获取模块,用于基于所述crud操作请求的接口,查询对应的预置package包,并获取所述package包的mapper文件;其中,所述crud操作请求的接口与所述对应的预置package包一一对应;
解析模块,用于解析所述mapper文件,获得数据库方言,其中,不同数据库对应不同数据库方言;
切换模块,用于基于所述数据库方言,查询所述数据库方言对应的数据库,并从当前数据库切换到所述数据库方言对应的数据库;
操作模块,用于基于所述crud操作请求,对所述数据库方言对应的数据库执行crud操作,其中,所述crud操作包括对数据库执行增加数据操作、读取数据操作、修改数据操作、删除数据操作中的任意一种或多种;
第一配置模块,用于基于数据库连接池Druid,配置主从数据源;
第二配置模块,用于将数据库的访问密码存储在密码管理平台。
7.一种数据源切换设备,其特征在于,所述数据源切换设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的数据源切换程序,所述数据源切换程序被所述处理器执行时实现如权利要求1-5中任一项所述的数据源切换方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据源切换程序,所述数据源切换程序被处理器执行时实现如权利要求1-5中任一项所述的数据源切换方法的步骤。
CN201910542806.6A 2019-06-21 2019-06-21 数据源切换方法、装置、设备及计算机可读存储介质 Active CN110399411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910542806.6A CN110399411B (zh) 2019-06-21 2019-06-21 数据源切换方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910542806.6A CN110399411B (zh) 2019-06-21 2019-06-21 数据源切换方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110399411A CN110399411A (zh) 2019-11-01
CN110399411B true CN110399411B (zh) 2024-05-03

Family

ID=68323310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910542806.6A Active CN110399411B (zh) 2019-06-21 2019-06-21 数据源切换方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110399411B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678630A (zh) * 2013-12-19 2014-03-26 北京用友政务软件有限公司 一种数据库监控方法及系统
CN103853986A (zh) * 2014-01-03 2014-06-11 李凤华 一种访问控制方法和装置
US9454576B1 (en) * 2009-10-16 2016-09-27 Iqor Holdings Inc., Iqor US Inc. Apparatuses, methods and systems for an employee onboarding automator
CN107317800A (zh) * 2017-06-01 2017-11-03 努比亚技术有限公司 安全校验方法、终端及计算机可读存储介质
CN108038157A (zh) * 2017-12-05 2018-05-15 北京星河星云信息技术有限公司 主从数据库读写方法、系统、存储装置和服务器
CN109241037A (zh) * 2018-08-28 2019-01-18 郑州云海信息技术有限公司 一种实现数据库处理的方法、装置、设备及存储介质
CN109359445A (zh) * 2018-09-25 2019-02-19 浙江齐治科技股份有限公司 一种数据库密码管理系统及方法
CN109614427A (zh) * 2018-10-23 2019-04-12 平安科技(深圳)有限公司 多源数据库的访问方法及装置、存储介质和电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454576B1 (en) * 2009-10-16 2016-09-27 Iqor Holdings Inc., Iqor US Inc. Apparatuses, methods and systems for an employee onboarding automator
CN103678630A (zh) * 2013-12-19 2014-03-26 北京用友政务软件有限公司 一种数据库监控方法及系统
CN103853986A (zh) * 2014-01-03 2014-06-11 李凤华 一种访问控制方法和装置
CN107317800A (zh) * 2017-06-01 2017-11-03 努比亚技术有限公司 安全校验方法、终端及计算机可读存储介质
CN108038157A (zh) * 2017-12-05 2018-05-15 北京星河星云信息技术有限公司 主从数据库读写方法、系统、存储装置和服务器
CN109241037A (zh) * 2018-08-28 2019-01-18 郑州云海信息技术有限公司 一种实现数据库处理的方法、装置、设备及存储介质
CN109359445A (zh) * 2018-09-25 2019-02-19 浙江齐治科技股份有限公司 一种数据库密码管理系统及方法
CN109614427A (zh) * 2018-10-23 2019-04-12 平安科技(深圳)有限公司 多源数据库的访问方法及装置、存储介质和电子设备

Also Published As

Publication number Publication date
CN110399411A (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
US10417119B2 (en) Dynamic testing based on automated impact analysis
CN107506451B (zh) 用于数据交互的异常信息监控方法及装置
CN107273280B (zh) 一种日志处理方法、装置、电子设备和存储介质
CN108519967B (zh) 图表可视化方法、装置、终端和存储介质
CN104679500B (zh) 实体类自动生成实现方法及装置
CN108388640B (zh) 一种数据转换方法、装置以及数据处理系统
CN113360519B (zh) 数据处理方法、装置、设备和存储介质
CN110704476A (zh) 数据处理方法、装置、设备及存储介质
US9311345B2 (en) Template based database analyzer
CN112256682B (zh) 一种多维异构数据的数据质量检测方法及装置
KR20130097252A (ko) 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치
CN111767574A (zh) 用户权限确定方法、装置、电子设备及可读存储介质
CN113342692B (zh) 测试用例自动生成方法、装置、电子设备及存储介质
US8024320B1 (en) Query language
CN113010208B (zh) 一种版本信息的生成方法、装置、设备及存储介质
CN108984374A (zh) 一种数据库性能的测试方法和系统
US20160004754A1 (en) Generic API
CN110399411B (zh) 数据源切换方法、装置、设备及计算机可读存储介质
CN115033634A (zh) 数据采集方法、装置、电子设备和介质
US10216747B2 (en) Customized synthetic data creation
CN114564354A (zh) 数据库性能监控方法、装置、电子设备及存储介质
CN109697141B (zh) 用于可视化测试的方法及装置
CN113434382A (zh) 数据库性能监控方法、装置、电子设备及计算机可读介质
CN112559914A (zh) 指标数据显示方法及装置
CN116755684B (zh) OAS Schema的生成方法、装置、设备及介质

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