亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種多數(shù)據(jù)庫(kù)切換方法及裝置與流程

文檔序號(hào):11950520閱讀:216來(lái)源:國(guó)知局
一種多數(shù)據(jù)庫(kù)切換方法及裝置與流程

技術(shù)領(lǐng)域

本發(fā)明涉及一種數(shù)據(jù)庫(kù)切換方法及裝置,屬于數(shù)據(jù)庫(kù)領(lǐng)域,具體是涉及一種多數(shù)據(jù)庫(kù)切換方法及裝置。



背景技術(shù):

隨著互聯(lián)網(wǎng)的發(fā)展,業(yè)務(wù)的復(fù)雜程度逐漸增加,以往單種數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足業(yè)務(wù)需求,現(xiàn)有的應(yīng)用中,需要在一個(gè)項(xiàng)目中同時(shí)使用多種數(shù)據(jù)庫(kù)系統(tǒng)。然而現(xiàn)有的 php框架大都是針對(duì)單種數(shù)據(jù)庫(kù)系統(tǒng)做配置,在連接時(shí),需要頻繁配置數(shù)據(jù)庫(kù)連接參數(shù),操作繁瑣、復(fù)雜,難以滿足多數(shù)據(jù)庫(kù)的連接需求。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種多數(shù)據(jù)庫(kù)切換方法及裝置,其目的在于解決多數(shù)據(jù)庫(kù)連接時(shí),需要頻繁配置數(shù)據(jù)庫(kù)連接參數(shù),操作繁瑣、復(fù)雜,難以滿足多數(shù)據(jù)庫(kù)的連接需求的問(wèn)題。

為了解決上述問(wèn)題,根據(jù)本發(fā)明的一個(gè)方面,提供了一種多數(shù)據(jù)庫(kù)切換方法,包括:

步驟1,定義用于描述數(shù)據(jù)庫(kù)連接參數(shù)的數(shù)據(jù)庫(kù)配置模板;

步驟2,定義并初始化數(shù)據(jù)庫(kù)連接對(duì)象,所述數(shù)據(jù)庫(kù)連接對(duì)象接收其它程序傳遞的數(shù)據(jù)庫(kù)標(biāo)識(shí),并根據(jù)在數(shù)據(jù)庫(kù)配置模板中查找到的與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),并返回?cái)?shù)據(jù)連接對(duì)象;

步驟3,調(diào)用數(shù)據(jù)庫(kù)連接對(duì)象,并向數(shù)據(jù)庫(kù)連接對(duì)象傳遞數(shù)據(jù)庫(kù)標(biāo)識(shí),接收數(shù)據(jù)庫(kù)連接對(duì)象的返回結(jié)果。

優(yōu)選的,上述的一種多數(shù)據(jù)庫(kù)切換方法,所述步驟1中,由初始化程序?qū)⒍x好的數(shù)據(jù)庫(kù)配置模板讀入計(jì)算機(jī)內(nèi)存中。

優(yōu)選的,上述的一種多數(shù)據(jù)庫(kù)切換方法,所述步驟3中,若數(shù)據(jù)庫(kù)連接對(duì)象在數(shù)據(jù)庫(kù)配置模板中未查找到與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù),則向用戶返回錯(cuò)誤提示;否則,用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),并返回?cái)?shù)據(jù)連接對(duì)象。

優(yōu)選的,上述的一種多數(shù)據(jù)庫(kù)切換方法,所述步驟3中,若數(shù)據(jù)庫(kù)連接對(duì)象用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù)失敗,則返回錯(cuò)誤提示;否則,利用返回的數(shù)據(jù)連接對(duì)象讀取數(shù)據(jù)。

為了解決上述問(wèn)題,根據(jù)本發(fā)明的另一個(gè)方面,提供了一種多數(shù)據(jù)庫(kù)切換裝置,包括:

模板配置模塊,定義用于描述數(shù)據(jù)庫(kù)連接參數(shù)的數(shù)據(jù)庫(kù)配置模板;

代理生成模塊,定義并初始化數(shù)據(jù)庫(kù)連接對(duì)象,所述數(shù)據(jù)庫(kù)連接對(duì)象接收其它程序傳遞的數(shù)據(jù)庫(kù)標(biāo)識(shí),并根據(jù)在數(shù)據(jù)庫(kù)配置模板中查找到的與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),并返回?cái)?shù)據(jù)連接對(duì)象;

連接調(diào)用模塊,調(diào)用數(shù)據(jù)庫(kù)連接對(duì)象,并向數(shù)據(jù)庫(kù)連接對(duì)象傳遞數(shù)據(jù)庫(kù)標(biāo)識(shí),接收數(shù)據(jù)庫(kù)連接對(duì)象的返回結(jié)果。

優(yōu)化的,上述的一種多數(shù)據(jù)庫(kù)切換裝置,所述模板配置模塊中,由初始化程序?qū)⒍x好的數(shù)據(jù)庫(kù)配置模板讀入計(jì)算機(jī)內(nèi)存中。

優(yōu)化的,上述的一種多數(shù)據(jù)庫(kù)切換裝置,所述連接調(diào)用模塊中,若數(shù)據(jù)庫(kù)連接對(duì)象在數(shù)據(jù)庫(kù)配置模板中未查找到與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù),則向用戶返回錯(cuò)誤提示;否則,用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),并返回?cái)?shù)據(jù)連接對(duì)象。

優(yōu)化的,上述的一種多數(shù)據(jù)庫(kù)切換裝置,所述連接調(diào)用模塊中,若數(shù)據(jù)庫(kù)連接對(duì)象用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù)失敗,則返回錯(cuò)誤提示;否則,利用返回的數(shù)據(jù)連接對(duì)象讀取數(shù)據(jù)。

總體而言,本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比, 本發(fā)明利用數(shù)據(jù)庫(kù)連接工廠類(lèi)建立并返回?cái)?shù)據(jù)庫(kù)連接,簡(jiǎn)化了操作,提高了數(shù)據(jù)庫(kù)連接效率。

附圖說(shuō)明

附圖1是本發(fā)明的流程示意圖。

附圖2是本發(fā)明的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面通過(guò)實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說(shuō)明。

一種多數(shù)據(jù)庫(kù)切換方法,包括:

步驟1,定義用于描述數(shù)據(jù)庫(kù)連接參數(shù)的數(shù)據(jù)庫(kù)配置模板;

步驟2,定義并初始化數(shù)據(jù)庫(kù)連接對(duì)象,所述數(shù)據(jù)庫(kù)連接對(duì)象接收其它程序傳遞的數(shù)據(jù)庫(kù)標(biāo)識(shí),并根據(jù)在數(shù)據(jù)庫(kù)配置模板中查找到的與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),并返回?cái)?shù)據(jù)連接對(duì)象;

步驟3,調(diào)用數(shù)據(jù)庫(kù)連接對(duì)象,并向數(shù)據(jù)庫(kù)連接對(duì)象傳遞數(shù)據(jù)庫(kù)標(biāo)識(shí),接收數(shù)據(jù)庫(kù)連接對(duì)象的返回結(jié)果。

其中:步驟1中,由初始化程序?qū)⒍x好的數(shù)據(jù)庫(kù)配置模板讀入計(jì)算機(jī)內(nèi)存中。步驟3中,若數(shù)據(jù)庫(kù)連接對(duì)象在數(shù)據(jù)庫(kù)配置模板中未查找到與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù),則向用戶返回錯(cuò)誤提示;否則,用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),若數(shù)據(jù)庫(kù)連接對(duì)象用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù)失敗,則返回錯(cuò)誤提示;否則,利用返回的數(shù)據(jù)連接對(duì)象讀取數(shù)據(jù)

一種多數(shù)據(jù)庫(kù)切換裝置,包括:

模板配置模塊,定義用于描述數(shù)據(jù)庫(kù)連接參數(shù)的數(shù)據(jù)庫(kù)配置模板;

代理生成模塊,定義并初始化數(shù)據(jù)庫(kù)連接對(duì)象,所述數(shù)據(jù)庫(kù)連接對(duì)象接收其它程序傳遞的數(shù)據(jù)庫(kù)標(biāo)識(shí),并根據(jù)在數(shù)據(jù)庫(kù)配置模板中查找到的與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),并返回?cái)?shù)據(jù)連接對(duì)象;

連接調(diào)用模塊,調(diào)用數(shù)據(jù)庫(kù)連接對(duì)象,并向數(shù)據(jù)庫(kù)連接對(duì)象傳遞數(shù)據(jù)庫(kù)標(biāo)識(shí),接收數(shù)據(jù)庫(kù)連接對(duì)象的返回結(jié)果。

其中,模板配置模塊中,由初始化程序?qū)⒍x好的數(shù)據(jù)庫(kù)配置模板讀入計(jì)算機(jī)內(nèi)存中。連接調(diào)用模塊中,若數(shù)據(jù)庫(kù)連接對(duì)象在數(shù)據(jù)庫(kù)配置模板中未查找到與數(shù)據(jù)庫(kù)標(biāo)識(shí)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接參數(shù),則向用戶返回錯(cuò)誤提示;否則,用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù),若數(shù)據(jù)庫(kù)連接對(duì)象用查找到的數(shù)據(jù)庫(kù)連接參數(shù)連接數(shù)據(jù)庫(kù)失敗,則返回錯(cuò)誤提示;否則,利用返回的數(shù)據(jù)連接對(duì)象讀取數(shù)據(jù)。

實(shí)施例1

本發(fā)明的操作流程如圖1所示。

首先定義多數(shù)據(jù)庫(kù)配置的格式如下,該配置隨程序啟動(dòng)讀入內(nèi)存:

'db' => [

// mysql 的配置

'mysql' => [

'dsn' => '',

'username' => '',

'password' => '',

'charset' => 'utf8',

],

// 其它數(shù)據(jù)庫(kù)的配置

'otherdb' => [

'dsn' => '',

'username' => '',

'password' => '',

'charset' => 'utf8',

]

]

然后定義數(shù)據(jù)庫(kù)連接工廠類(lèi)DbFactory,該類(lèi)用于計(jì)算具體要使用的數(shù)據(jù)庫(kù),并返回連接的數(shù)據(jù)庫(kù)的句柄,以便操作數(shù)據(jù)庫(kù)。該類(lèi)有一個(gè)唯一入口方法,定義為 instance,instance 方法可以接收一個(gè)參數(shù),該參數(shù)用于指定我們需要使用的數(shù)據(jù)庫(kù),與第一步中的配置相對(duì)應(yīng)。方法會(huì)根據(jù)指定的參數(shù)讀取配置,如果讀取到則用讀取到的配置連接數(shù)據(jù)庫(kù),如果讀取失敗,則拋出錯(cuò)誤提示。在連接數(shù)據(jù)庫(kù)過(guò)程中如果有錯(cuò)誤,拋出錯(cuò)誤,如果成功,返回?cái)?shù)據(jù)庫(kù)連接標(biāo)識(shí)。

當(dāng)需要使用某數(shù)據(jù)庫(kù)讀取信息時(shí),可以使用第二步中的 DbFactory 來(lái)連接數(shù)據(jù)庫(kù): DbFactory::instance('數(shù)據(jù)庫(kù)標(biāo)識(shí)')。

例如需要讀取用戶信息,可使用如下使用代碼:

$db = DbFactory::instance('mysql');

$db->query('select username from users');

以上方法實(shí)施例和裝置實(shí)施例是一一對(duì)應(yīng)的,因此方法實(shí)施例的擴(kuò)展方式亦可用于裝置實(shí)施例。

本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類(lèi)似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書(shū)所定義的范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1