一种数据库切换方法及终端设备与流程

文档序号:16855683发布日期:2019-02-12 23:15阅读:223来源:国知局
一种数据库切换方法及终端设备与流程

本发明属于数据库应用技术领域,尤其涉及一种数据库切换方法及终端设备。



背景技术:

随着网络技术的飞速发展,融合通信系统开始采用浏览器/服务器(b/s)框架结构,也出现了越来越多的基于java的web应用开发框架。传统的web应用下的b/s框架结构分为三层:表现层、逻辑层和数据层。在这种框架结构中,客户端的请求以http请求形式发送,而服务器端则响应以html页面的形式送回客户端,由客户端浏览器负责显示html页面。应用的逻辑层和数据层完全在服务器端实现,客户端只需要浏览器进行显示和用户操作即可。数据层为逻辑层提供数据服务,逻辑层进行数据业务逻辑处理,将处理结果返回给表现层。现有技术下的b/s框架结构,数据库切换效率低,影响了数据库访问的速度。



技术实现要素:

有鉴于此,本发明实施例提供了一种数据库切换方法及终端设备,以提高数据库切换的效率,从而提高数据库访问的速度。

本发明实施例的第一方面提供了一种数据库切换方法,包括:

拦截数据库访问请求,获取所述数据库访问请求的目标数据源标识信息;

根据所述目标数据源标识信息确定需要访问的目标数据库;

调用预先配置的数据库连接组件,将连接切换到所述目标数据库;

根据所述数据库访问请求对所述目标数据库执行数据操作。

本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如下步骤:

拦截数据库访问请求,获取所述数据库访问请求的目标数据源标识信息;

根据所述目标数据源标识信息确定需要访问的目标数据库;

调用预先配置的数据库连接组件,将连接切换到所述目标数据库;

根据所述数据库访问请求对所述目标数据库执行数据操作。

本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。

在本发明实施例中,采用拦截数据库访问请求,确定需要访问的目标数据库,再调用预先配置的数据库连接组件,将连接切换到所述目标数据库,提高了数据库切换效率,从而提高了数据库访问的速度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据库切换方法的实现流程图;

图2是本发明实施例提供的另一种数据库切换方法的实现流程图;

图3是本发明实施例提供的一种数据库切换装置的示意框图;

图4是本发明实施例提供的另一种数据库切换装置的示意框图;

图5是本发明实施例提供的又一种数据库切换装置的示意框图;

图6是本发明实施例提供的一种终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

图1示出了本发明实施例提供的一种数据库切换方法的流程图。如图1所示,所述方法包括步骤s11至s14。各步骤的具体实现原理如下。

s11,拦截数据库访问请求,获取所述数据库访问请求的目标数据源标识信息。

其中,数据库访问请求通常由用户操作触发,包括对数据库中数据的查询、修改、删除、或增加等的数据操作请求。可以为http请求,也可以为其他协议的请求。数据库访问请求包括目标数据源标识信息。

例如:

http请求1:http:/www.testdomain.com/sa?cw_fromdata1,其中,data1为目标数据源标识信息。

http请求2:http:/www.testdomain.com/sa?cw_fromdata2,其中,data2为目标数据源标识信息。

本发明实施例中,通过配置过滤器来拦截数据库访问请求,并从请求中获取from后面的字符串,即可得到目标数据源标识信息。然后过滤器将目标数据源标识信息存储起来,供后续数据库连接使用。

其中,所述过滤器是web组件,可以拦截任意请求,以便查看或截取在终端设备和服务器之间通过的数据流,可以将过滤器添加到请求中。

需要说明的是,在本发明其他实施例中,还可以采用拦截器拦截请求,并获取请求中的目标数据源标识信息,本发明对此不做具体限定。

可选地,在其他发明实施例中,在s11之前,还包括:

s10,配置数据库文件,通过所述数据库文件对多个能访问的数据库进行配置,所述数据库文件包括每个数据库的数据库服务器ip地址、数据源标识信息、用户名和密码等。

这个步骤是为后续的数据库切换做准备,对能够访问的多个数据库,如第一数据库和第二数据库,均进行配置。其中,配置的数据库文件中至少包括每个数据库的数据源标识信息,数据源标识信息用于区分各数据库。从而在后续的步骤中能够根据从数据库访问请求中获取的目标数据源标识信息确定目标数据库。

例如,第一数据库的数据库标识信息为data1;第二数据库的数据库标识信息为data2。

s12,根据所述目标数据源标识信息确定需要访问的目标数据库。

其中,如前所述,每个数据库均设置数据源标识信息,那么根据获取到的目标数据源标识信息就可以确定需要访问的目标数据库,从而在后续的步骤中调用数据库连接组件,将连接切换到目标数据库,实现对目标数据库的数据操作。

例如,http请求1:http:/www.testdomain.com/sa?cw_fromdata1中包括的目标数据源标识信息为data1,那么根据目标数据源标识信息为data1确定需要访问的目标数据库为第一数据库。

http请求2:http:/www.testdomain.com/sa?cw_fromdata2中包括的数据源标识信息为data2,那么,根据数据源标识信息为data2确定需要访问的目标数据库为第二数据库。

s13,调用预先配置的数据库连接组件,将连接切换到所述目标数据库。

本发明实施例中,在步骤s13之前,预先配置了数据库连接组件,所述数据库连接组件具有连接多个数据库的属性。由于在数据库连接组件中,改变了现有的只能连接一个数据库的属性,因而在步骤s13中,通过调用所述数据库连接组件,能够将连接切换到目标数据库。

例如,数据库连接组件可以连接第一数据库或第二数据库,当目标数据库为第一数据库时,数据库连接组件将连接切换到第一数据库;当目标数据库为第二数据库时,数据库连接组件将连接切换到第二数据库。

s14,根据所述数据库访问请求对所述目标数据库执行数据操作。

其中,由于数据库连接组件已经将连接切换到目标数据库,因而根据数据库访问请求可以对目标数据库执行数据操作。如前所述,所述数据操作可以为数据的添加、删除或更改等。

在本发明实施例中,通过在数据库连接组件中实现数据源切换,提高了数据库切换的效率,从而提高了数据库访问的速度。此外,由于通过调用数据库连接组件中实现数据源切换,不需要太多改变原系统框架的结构,减少了代码量。

在上述实施例的基础上,可选地,在s14之后还包括:所述数据操作执行完成之后,将连接切换到默认数据库。

需要说明的是,所述默认数据库优选为连接频率最高的数据库或数据量最大的数据库。通过这种设置,可以减少数据库的切换的同时,减少数据错误操作的概率,提高系统的稳定性。

如图2所示,本发明提供了另一种数据库切换方法,对本发明图1所示实施例做了进一步改进,所述方法包括s21至s24。

s21,拦截数据库访问请求,定位所述数据库访问请求中的预设字符,截取从所述预设字符后的预设位数的字符作为期望字符串。

其中,所述期望字符串包括目标数据源标识信息。

如前所述,数据库访问请求包括一连串的字符,从中定位出预设字符。预设字符可以是单个字母、和/或数字、和/或符号,也可以是多个字母、和/或数字、和/或符号组成的字符串。例如from或data_from等。

再截取预设字符后的预设位数的字符作为期望字符串,期望字符串包括了目标数据源标识信息。预设位数可以为数据源标识信息的字符位数。

例如,在http请求1中定位预设字符“from”,截取预设字符“from”后的5位字符“data1”作为期望字符串;在http请求2中定位预设字符“from”,截取预设字符“from”后的5位字符“data2”作为期望字符串。

s22,分别计算所述期望字符串与多个预设字符串的相似度,确定相似度最高的预设字符串对应的数据库为需要访问的目标数据库。

其中,每个所述预设字符串包括一个数据库的数据源标识信息。

在步骤s21中,已经确定了期望字符串,此时,分别计算期望字符串与多个预设字符串的相似度,即,分别计算目标数据源标识信息与多个所述数据源标识信息的相似度,再确定相似度最高的预设字符串对应的数据库为需要访问的目标数据库。

可选地,根据公式分别计算所述期望字符串与多个预设字符串的相似度,其中,srtinga表示期望字符串的各字符组成的期望字符集合,stringb表示预设字符串的各字符组成的预设字符集合,|stringa∩stringb|表示期望字符集合与预设字符集合求交集后组成的集合长度,|stringa∪stringb|表示期望字符集合与预设字符集合求并集后组成的集合长度。

例如,当期望字符串为“data1”,计算期望字符串为“data1”与第一数据库的数据源标识信息“data1”的相似度,计算期望字符串为“data1”与第二数据库的数据源标识信息“data2”的相似度。确定相似度最高的数据源标识信息对应的数据库为需要访问的目标数据库。

通过上述公式分别计算期望字符串“data1”与预设字符串“data1”和“data2”的相似度,为1和0.8,可见,期望字符串“data1”与预设字符串“data1”相似度最高,数据源标识信息“data1”对应的数据库,即第一数据库为需要访问的目标数据库。

本发明实施例,在前述实施例的基础上,提出一种简单地确定需要访问的目标数据库的方法,减少了计算量,从而进一步提高了数据库切换的效率。

s23,调用预先配置的数据库连接组件,将连接切换到所述目标数据库。

s24,根据所述数据库访问请求对所述目标数据库执行数据操作。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的应用登录方法,图3示出了本发明实施例提供的界面的数据库切换装置的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。

参照图3,该数据库切换装置包括:获取模块31、确定模块32、切换模块33和执行模块34。

其中,获取模块31,用于拦截数据库访问请求,获取所述数据库访问请求的目标数据源标识信息;

确定模块32,用于根据所述目标数据源标识信息确定需要访问的目标数据库;

切换模块33,用于调用预先配置的数据库连接组件,将连接切换到所述目标数据库;

执行模块34,用于根据所述数据库访问请求对所述目标数据库执行数据操作。

可选地,如图4所示,所述数据库切换装置还包括:

第一配置模块41,用于配置数据库连接组件,所述数据源连接组件具有连接多个数据库的属性。

可选地,如图5所示,所述数据库切换装置还包括:

第二配置模块51,用于配置数据库文件,通过所述数据库文件对多个能访问的数据库进行配置,所述数据库文件至少包括每个数据库的数据源标识信息。

可选地,所述切换模块33还用于:所述数据操作执行完成之后,将连接切换到默认数据库。

可选地,所述获取模块31具体用于:

拦截数据库访问请求,定位所述数据库访问请求中的预设字符,截取从所述预设字符后的预设位数的字符作为期望字符串,所述期望字符串包括目标数据源标识信息。

所述确定模块32具体用于:

分别计算所述期望字符串与多个预设字符串的相似度,确定相似度最高的预设字符串对应的数据库为需要访问的目标数据库;其中,每个所述预设字符串包括一个数据库的数据源标识信息。

其中,所述确定模块32具体用于:

根据公式分别计算所述期望字符串与多个预设字符串的相似度,其中,srtinga表示期望字符串的各字符组成的期望字符集合,stringb表示预设字符串的各字符组成的预设字符集合,|stringa∩stringb|表示期望字符集合与预设字符集合求交集后组成的集合长度,|stringa∪stringb|表示期望字符集合与预设字符集合求并集后组成的集合长度。

图6是本发明一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如数据库切换程序。所述处理器60执行所述计算机程序62时实现上述各个数据库切换方法实施例中的步骤,例如图1所示的步骤s11至s14。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块31至34的功能。

示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述终端设备6中的执行过程。

所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及移动电话等。所述终端设备6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器60可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器61可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1