欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種操作數(shù)據(jù)庫的方法及裝置與流程

文檔序號:12595532閱讀:202來源:國知局
一種操作數(shù)據(jù)庫的方法及裝置與流程

本發(fā)明涉及計算機程序開發(fā)技術(shù)領(lǐng)域,更具體地,涉及一種操作數(shù)據(jù)庫的方法及裝置。



背景技術(shù):

隨著計算機信息技術(shù)的快速發(fā)展,技術(shù)人員在進行程序開發(fā)時,通常需要執(zhí)行數(shù)據(jù)庫命令來測試程序在調(diào)用數(shù)據(jù)庫時的輸出結(jié)果。由于當(dāng)數(shù)據(jù)庫命令較復(fù)雜時,如何執(zhí)行數(shù)據(jù)庫命令影響著開發(fā)效率,從而如何執(zhí)行數(shù)據(jù)庫命令是個重點問題?,F(xiàn)有操作數(shù)據(jù)庫的方法主要是技術(shù)人員先創(chuàng)建一個數(shù)據(jù)庫客戶端實例,并在數(shù)據(jù)庫客戶端實例中手動鍵入數(shù)據(jù)庫命令,從而通過數(shù)據(jù)庫客戶端實例執(zhí)行數(shù)據(jù)庫命令。

在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:由于當(dāng)數(shù)據(jù)庫命令較復(fù)雜時,手動鍵入數(shù)據(jù)庫命令需要耗費大量時間,且鍵入時容易出錯,從而導(dǎo)致對數(shù)據(jù)庫操作時不太方便,數(shù)據(jù)庫命令的執(zhí)行效率較低。



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

本發(fā)明提供克服上述問題或者至少部分地解決上述問題的一種操作數(shù)據(jù)庫的方法及裝置。

根據(jù)本發(fā)明的一方面,提供了一種操作數(shù)據(jù)庫的方法,該方法包括:

基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容,顯示的文本內(nèi)容至少包含數(shù)據(jù)庫命令行;

根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行;

獲取數(shù)據(jù)庫服務(wù)器的返回結(jié)果;

在輸出窗口中顯示返回結(jié)果。

根據(jù)本發(fā)明的另一方面,提供了一種操作數(shù)據(jù)庫的裝置,該裝置包括:

第一獲取模塊,用于基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容,顯示的文本內(nèi)容至少包含數(shù)據(jù)庫命令行;

發(fā)送模塊,用于根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行;

第二獲取模塊,用于獲取數(shù)據(jù)庫服務(wù)器的返回結(jié)果;

顯示模塊,用于在輸出窗口中顯示返回結(jié)果。

本申請?zhí)岢龅募夹g(shù)方案帶來的有益效果是:

通過基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行。獲取數(shù)據(jù)庫服務(wù)器的返回結(jié)果。在輸出窗口中顯示返回結(jié)果。由于可基于啟動的拓展程序,根據(jù)打開的文本文件中顯示的文本內(nèi)容,來執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,而不用復(fù)制或手動鍵入數(shù)據(jù)庫命令,從而節(jié)省了數(shù)據(jù)庫命令執(zhí)行時的命令輸入時間,進而提高了數(shù)據(jù)庫命令的執(zhí)行效率。

另外,由于在預(yù)設(shè)文本編輯器中可打開多個文本文件,當(dāng)用戶需要執(zhí)行大量數(shù)據(jù)庫命令時,可將數(shù)據(jù)庫命令拆分成多個文本文件,通過打開多個文本文件分別執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,從而能夠便于用戶對數(shù)據(jù)庫命令的執(zhí)行流程進行管理。

附圖說明

圖1為本發(fā)明實施例的一種操作數(shù)據(jù)庫的方法的流程示意圖;

圖2為本發(fā)明實施例的一種操作數(shù)據(jù)庫的方法的流程示意圖;

圖3為本發(fā)明實施例的一種文本內(nèi)容的顯示示意圖;

圖4為本發(fā)明實施例的一種數(shù)據(jù)庫命令執(zhí)行結(jié)果的顯示示意圖;

圖5為本發(fā)明實施例的一種操作數(shù)據(jù)庫的裝置的結(jié)構(gòu)示意圖。

具體實施方式

下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。

現(xiàn)有操作數(shù)據(jù)庫的方法主要是由技術(shù)人員先通過數(shù)據(jù)庫軟件創(chuàng)建一個數(shù)據(jù)庫客戶端實例,并在數(shù)據(jù)庫客戶端實例中手動鍵入數(shù)據(jù)庫命令?;蛘撸瑥?fù)制一段數(shù)據(jù)庫命令至數(shù)據(jù)庫客戶端實例。由于上述兩種方式都需要手動創(chuàng)建數(shù)據(jù)庫客戶端實例,且無論是手動鍵入還是復(fù)制數(shù)據(jù)庫命令均耗費較長時間并容易出錯,從而導(dǎo)致對數(shù)據(jù)庫操作時不太方便,數(shù)據(jù)庫命令的執(zhí)行效率較低。

針對現(xiàn)有技術(shù)中的問題,本發(fā)明實施例提供了一種操作數(shù)據(jù)庫的方法。本實施例及后續(xù)實施例所提供的一種操作數(shù)據(jù)庫的方法,適用于安裝任一類型操作系統(tǒng)的終端。其中,適用的操作系統(tǒng)可以為Windows操作系統(tǒng)、Linux操作系統(tǒng)或OS X操作系統(tǒng),本實施例對此不作具體限定。參見圖1,本實施例提供的方法流程包括:101、基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容;102、根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行;103、獲取數(shù)據(jù)庫服務(wù)器的返回結(jié)果;104、在輸出窗口中顯示返回結(jié)果。

其中,顯示的文本內(nèi)容至少包含數(shù)據(jù)庫命令行,本實施例及后續(xù)實施例對此不作具體限定。數(shù)據(jù)庫服務(wù)器可以為Redis服務(wù)器、SSDB服務(wù)器或Hbase服務(wù)器等,本實施例及后續(xù)實施例對此不作具體限定。

本發(fā)明實施例提供的方法,通過基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行。獲取數(shù)據(jù)庫服務(wù)器的返回結(jié)果。在輸出窗口中顯示返回結(jié)果。由于可基于啟動的拓展程序,根據(jù)打開的文本文件中顯示的文本內(nèi)容,來執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,而不用復(fù)制或手動鍵入數(shù)據(jù)庫命令,從而節(jié)省了數(shù)據(jù)庫命令執(zhí)行時的命令輸入時間,進而提高了數(shù)據(jù)庫命令的執(zhí)行效率。

另外,由于在預(yù)設(shè)文本編輯器中可打開多個文本文件,當(dāng)用戶需要執(zhí)行大量數(shù)據(jù)庫命令時,可將數(shù)據(jù)庫命令拆分成多個文本文件,通過打開多個文本文件分別執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,從而能夠便于用戶對數(shù)據(jù)庫命令的執(zhí)行流程進行管理。

作為一種可選實施例,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容之前,還包括:

檢測用戶對文本文件的打開指令;

當(dāng)檢測到打開指令時,通過預(yù)設(shè)文本編輯器,顯示用戶打開的目標(biāo)文本文件中的文本內(nèi)容。

其中,預(yù)設(shè)文本編輯器可以為程序開發(fā)所使用的開源文本編輯器,如Visual Studio Code(簡稱VS Code)、Sublime Text、Atom、VIM或Notepad++等,本實施例及后續(xù)實施例對此不作具體限定。

作為一種可選實施例,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容之前,還包括:

當(dāng)檢測到用戶對預(yù)設(shè)快捷鍵的輸入指令時,啟動拓展程序;

或者,當(dāng)檢測到用戶對右鍵菜單中預(yù)設(shè)選項的選中指令時,啟動拓展程序。

作為一種可選實施例,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容,包括:

檢測用戶對文本內(nèi)容的選中指令;

當(dāng)檢測到選中指令時,根據(jù)選中指令所對應(yīng)的文本選中范圍,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

作為一種可選實施例,檢測用戶對文本內(nèi)容的選中指令之后,還包括:

當(dāng)未檢測到選中指令時,獲取文本內(nèi)容,并將文本內(nèi)容作為用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

作為一種可選實施例,根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行之前,還包括:

創(chuàng)建數(shù)據(jù)庫客戶端實例;

通過數(shù)據(jù)庫客戶端實例,連接數(shù)據(jù)庫服務(wù)器。

作為一種可選實施例,通過數(shù)據(jù)庫客戶端實例,連接數(shù)據(jù)庫服務(wù)器,包括:

獲取文本內(nèi)容中的預(yù)設(shè)連接地址;

通過數(shù)據(jù)庫客戶端實例,連接預(yù)設(shè)連接地址對應(yīng)的數(shù)據(jù)庫服務(wù)器。

作為一種可選實施例,獲取文本內(nèi)容中的預(yù)設(shè)連接地址,包括:

對文本內(nèi)容中的每一行內(nèi)容進行檢測;

當(dāng)在任一行內(nèi)容中檢測到第一預(yù)設(shè)字符時,獲取任一行內(nèi)容中第一預(yù)設(shè)字符后面的字符串,將字符串作為預(yù)設(shè)連接地址。

作為一種可選實施例,對文本內(nèi)容中的每一行內(nèi)容進行檢測之后,包括:

當(dāng)在每一行內(nèi)容中未檢測到第一預(yù)設(shè)字符或第一預(yù)設(shè)字符后面為空字符串時,通知用戶無法連接數(shù)據(jù)庫服務(wù)器。

作為一種可選實施例,根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行,包括:

根據(jù)目標(biāo)文本內(nèi)容中的第二預(yù)設(shè)字符,將目標(biāo)文本內(nèi)容拆分成數(shù)據(jù)庫命令行集合;

基于數(shù)據(jù)庫命令行集合,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令及參數(shù)。

作為一種可選實施例,基于數(shù)據(jù)庫命令行集合,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行,包括:

對于數(shù)據(jù)庫命令行集合中任一數(shù)據(jù)庫命令行,當(dāng)檢測到任一數(shù)據(jù)庫命令行不為空且不包含第一預(yù)設(shè)字符時,獲取任一數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)。

向數(shù)據(jù)庫服務(wù)器發(fā)送任一數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)。

作為一種可選實施例,在輸出窗口中顯示返回結(jié)果,包括:

向輸出窗口寫入返回結(jié)果;

通過調(diào)用輸出窗口實例的顯示方法,在輸出窗口中顯示返回結(jié)果。

作為一種可選實施例,向輸出窗口寫入返回結(jié)果,包括:

獲取返回結(jié)果的數(shù)據(jù)類型;

當(dāng)返回結(jié)果的數(shù)據(jù)類型為數(shù)字時,向輸出窗口寫入返回數(shù)字對應(yīng)的數(shù)據(jù)類型及返回的數(shù)字;

當(dāng)返回結(jié)果的數(shù)據(jù)類型為字符串時,向輸出窗口寫入返回的字符串;

當(dāng)返回結(jié)果的數(shù)據(jù)類型為空對象時,向輸出窗口寫入預(yù)設(shè)關(guān)鍵字;

當(dāng)返回結(jié)果的數(shù)據(jù)類型為對象時,將返回的對象轉(zhuǎn)換為字符串,向輸出窗口寫入轉(zhuǎn)換后的字符串。

作為一種可選實施例,預(yù)設(shè)文本編輯器為VS Code,數(shù)據(jù)庫服務(wù)器為Redis服務(wù)器,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容,包括:

調(diào)用vscode.window.activeTextEditor.selection.isEmpty接口,檢測用戶是否對文本內(nèi)容進行選中;

基于接口返回的數(shù)值,當(dāng)檢測到用戶對文本內(nèi)容進行選中時,以vscode.window.activeTextEditor.selection為參數(shù),調(diào)用vscode.window.activeTextEditor.document.getText方法獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容;

當(dāng)檢測到用戶未對文本內(nèi)容進行選中時,調(diào)用vscode.window.activeTextEditor.document.getText方法,獲取文本內(nèi)容,并將文本內(nèi)容作為用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實施例,在此不再一一贅述。

基于上述圖1對應(yīng)實施例中的內(nèi)容,本發(fā)明實施例提供了一種操作數(shù)據(jù)庫的方法。為了便于對方案進行闡述,本實施例以預(yù)設(shè)文本編輯器為VS Code,數(shù)據(jù)庫為Redis為例,來對數(shù)據(jù)庫命令執(zhí)行方法的過程進行說明。其中,VS Code是一個由微軟開發(fā)且同時支持Windows、Linux及OS X操作系統(tǒng)的開源文本編輯器,VS Code支持?jǐn)U展程序并內(nèi)置了擴展程序管理功能。Redis是一個開源、支持網(wǎng)絡(luò)且基于內(nèi)存的鍵值對存儲數(shù)據(jù)庫。

參見圖2,本實施例提供的方法流程包括:201、檢測用戶對文本文件的打開指令;202、當(dāng)檢測到打開指令時,通過VS Code顯示用戶打開的目標(biāo)文本文件中的文本內(nèi)容;203、基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容;204、根據(jù)目標(biāo)文本內(nèi)容,向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令行;205、獲取Redis服務(wù)器的返回結(jié)果;206、在VS Code的輸出窗口中顯示返回結(jié)果。

其中,201、檢測用戶對文本文件的打開指令。

由于本實施例提供的方法主要是基于在VS Code中打開的文本文件,實現(xiàn)執(zhí)行文本文件中的數(shù)據(jù)庫命令,從而在執(zhí)行本步驟之前,用戶(即相關(guān)程序開發(fā)人員)可以根據(jù)實際需求預(yù)先編輯包含數(shù)據(jù)庫命令行的文本文件,本實施例對此不作具體限定。其中,用戶根據(jù)實際程序開發(fā)需求,可編輯多個包含數(shù)據(jù)庫命令行的文本文件存儲在預(yù)設(shè)目錄中。

在執(zhí)行本步驟時,可檢測用戶對文本文件的打開指令。相應(yīng)地,用戶可在預(yù)設(shè)目錄中選中一個包含數(shù)據(jù)庫命令行的文本文件,并通過VS Code打開該文本文件,即輸入打開指令。

其中,202、當(dāng)檢測到打開指令時,通過VS Code,顯示用戶打開的目標(biāo)文本文件中的文本內(nèi)容。

本步驟主要是通過VS Code打開文本文件的過程,打開的文本文件可作為目標(biāo)文本文件。其中,目標(biāo)文本文件中的文本內(nèi)容可包含數(shù)據(jù)庫命令行、Redis服務(wù)器的地址及連接端口等,本實施例不對目標(biāo)文本文件包含的內(nèi)容作具體限定。

需要說明的是,本步驟的后續(xù)步驟主要是將打開的文本文件作為目標(biāo)文本文件,基于目標(biāo)文本文件實現(xiàn)執(zhí)行數(shù)據(jù)庫命令的過程。由于文本編輯器通常支持同時打開多個文本文件,從而在本次打開目標(biāo)文本文件之前,用戶可以按照本步驟及上述步驟201打開多個其它的文本文件,本實施例對此不作具體限定。相應(yīng)地,用戶后續(xù)除了可對本次打開的目標(biāo)文本文件進行操作以實現(xiàn)執(zhí)行數(shù)據(jù)庫命令之外,還可以對之前打開目標(biāo)文本文件進行操作以實現(xiàn)執(zhí)行數(shù)據(jù)庫命令,本實施例對此不作具體限定。

例如,用戶本次打開了目標(biāo)文本文件3,而用戶之前還打開了目標(biāo)文本文件1及目標(biāo)文本文件2。用戶后續(xù)除了可對目標(biāo)文本文件3進行操作,以執(zhí)行目標(biāo)文本文件3中的數(shù)據(jù)庫命令之外,還可以對目標(biāo)文本文件1或目標(biāo)文本文件2進行操作,從而分別執(zhí)行目標(biāo)文本文件1或目標(biāo)文本文件2中的數(shù)據(jù)庫命令。

基于上述內(nèi)容,需要說明的是,本實施例的后續(xù)步驟僅對執(zhí)行文本文件中數(shù)據(jù)庫命令的過程進行說明。然而,具體執(zhí)行的是本次打開的目標(biāo)文本文件中的數(shù)據(jù)庫命令,還是執(zhí)行用戶之前打開的目標(biāo)文本文件中的數(shù)據(jù)庫命令,本實施例對此不作具體限定。實際實施中,具體執(zhí)行哪個文本文件以VS Code顯示的焦點文件為主,顯示的焦點文件即為目標(biāo)文本文件?;诜桨傅耐暾郧覟榱吮阌谡f明,本實施例的后續(xù)步驟主要以本次打開的目標(biāo)文本文件為例,對數(shù)據(jù)庫命令的執(zhí)行過程進行說明。

其中,203、基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

由于本實施例主要是在VS Code中實現(xiàn)數(shù)據(jù)庫命令的執(zhí)行,即對VS Code的功能進行了拓展,執(zhí)行相應(yīng)的拓展程序以實現(xiàn)執(zhí)行數(shù)據(jù)庫命令,從而在執(zhí)行本步驟之前還可以啟動拓展程序。本實施例不對啟動拓展程序的方式作具體限定,包括但不限于:當(dāng)檢測到用戶對預(yù)設(shè)快捷鍵的輸入指令時,啟動拓展程序;或者,當(dāng)檢測到用戶對右鍵菜單中預(yù)設(shè)選項的選中指令時,啟動拓展程序。

例如,用戶可通過鍵盤鍵入“ctrl+enter”以啟動拓展程序?;蛘?,用戶還可以通過點擊鼠標(biāo)右鍵,在右鍵菜單中點擊“redisCli”選項以啟動拓展程序。其中,“ctrl+enter”即為預(yù)設(shè)快捷鍵,可由用戶自行設(shè)置?!皉edisCli”為拓展程序名稱,同樣可由用戶自行設(shè)置,本實施例對此不作具體限定。

具體地,在啟動拓展程序之前,用戶可利用VS Code官方提供的Yeoman VS Code Extension generator工具,生成一份骨架代碼。向骨架代碼的package.json文件中contributes項中加入以下代碼,以支持通過快捷鍵或右鍵菜單選項啟動拓展程序:

該過程通過VS Code的內(nèi)置方案,向項目配置文件package.json中加入對應(yīng)的配置。當(dāng)VS Code啟動時,拓展的package.json文件便會被讀取,并且VS Code還會對package.json文件中的contributes項的內(nèi)容做處理。

上述配置完成后,通過向骨架代碼的extension.ts文件中加入拓展程序的具體實現(xiàn)代碼,從而實現(xiàn)通過點擊右鍵菜單選項或使用快捷鍵運行擴展程序。相應(yīng)地,本步驟及后續(xù)步驟主要是拓展程序的具體實現(xiàn)過程。需要說明的是,由于后續(xù)實現(xiàn)過程需要調(diào)用VS Code模塊和NodeRedis模塊的相關(guān)接口,從而拓展程序在啟動后可導(dǎo)入VS Code模塊和NodeRedis模塊,本實施對此不作具體限定。其中,NodeRedis為Node環(huán)境下的Redis客戶端庫。

基于上述過程,拓展程序在啟動后,由于VS Code顯示的文本內(nèi)容主要為數(shù)據(jù)庫命令行,從而用戶在啟動拓展程序之前可指定顯示的文本內(nèi)容中哪些數(shù)據(jù)庫命令行需要執(zhí)行。相應(yīng)地,本實施例不對獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容的方式作具體限定,包括但不限于:檢測用戶對文本內(nèi)容的選中指令;當(dāng)檢測到選中指令時,根據(jù)選中指令所對應(yīng)的文本選中范圍,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

例如,用戶可通過鼠標(biāo)指針對顯示的文本內(nèi)容進行選中,從而終端可根據(jù)用戶選中的文本范圍,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

由于用戶在啟動拓展程序之后,用戶之前可能并未選中任何顯示的文本內(nèi)容,此時可將所有文本內(nèi)容作為用戶要執(zhí)行的目標(biāo)文本內(nèi)容,本實施例對此不作具體限定。

基于拓展程序?qū)氲腣S Code模塊,上述獲取目標(biāo)文本內(nèi)容的過程,可通過調(diào)用vscode.window.activeTextEditor.selection.isEmpty接口,判斷當(dāng)前顯示的文本內(nèi)容是否有被選中的內(nèi)容。當(dāng)檢測到被選中的內(nèi)容時,可通過調(diào)用vscode.window.activeTextEditor.document.getText()方法,該方法參數(shù)為vscode.window.activeTextEditor.selection,以獲取選中的目標(biāo)文本內(nèi)容。當(dāng)沒有檢測到被選中的內(nèi)容時,可通過調(diào)用vscode.window.activeTextEditor.document.getText()方法,獲取顯示的所有文本內(nèi)容,并作為用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

其中,204、根據(jù)目標(biāo)文本內(nèi)容,向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令行。

由于后續(xù)步驟需要執(zhí)行數(shù)據(jù)庫命令,而在執(zhí)行數(shù)據(jù)庫命令之前需要與Redis服務(wù)器進行連接,從而在執(zhí)行本步驟之前若檢測到?jīng)]有連接至Redis服務(wù)器,可先與Redis服務(wù)器進行連接。本實施例不對連接Redis服務(wù)器的方式作具體限定,包括但不限于:創(chuàng)建Redis客戶端實例;通過Redis客戶端實例,連接Redis服務(wù)器。

在創(chuàng)建Redis客戶端實例時,可通過調(diào)用NodeRedis模塊提供的createClient接口,創(chuàng)建一個Redis客戶端實例,本實施例對此不作具體限定。由于在連接Redis服務(wù)器之前,需要先知道Redis服務(wù)器的地址,從而可先獲取Redis服務(wù)器的地址。相應(yīng)地,本實施例不對通過Redis客戶端實例,連接Redis服務(wù)器的方式作具體限定,包括但不限于:獲取文本內(nèi)容中的預(yù)設(shè)連接地址;通過Redis客戶端實例,連接預(yù)設(shè)連接地址對應(yīng)的Redis服務(wù)器。其中,預(yù)設(shè)連接地址即為Redis服務(wù)器的地址。

由于用戶在編輯文本文件時,可在文本文件中置入要連接的Redis服務(wù)器對應(yīng)的地址,從而可在顯示的文本內(nèi)容中檢測出預(yù)設(shè)連接地址。關(guān)于獲取文本內(nèi)容中的預(yù)設(shè)連接地址的方式,本實施例對此不作具體限定,包括但不限于:對文本內(nèi)容中的每一行內(nèi)容進行檢測;當(dāng)在任一行內(nèi)容中檢測到第一預(yù)設(shè)字符時,獲取任一行內(nèi)容中第一預(yù)設(shè)字符后面的字符串,將字符串作為預(yù)設(shè)連接地址。

用戶在編輯文本文件中的文本內(nèi)容時,對于每一行內(nèi)容,可預(yù)先約定第一預(yù)設(shè)字符后面的字符串為預(yù)設(shè)連接地址,本實施例對此不作具體限定。其中,第一預(yù)設(shè)字符可根據(jù)用戶習(xí)慣自行設(shè)置,本實施例對此不作具體限定。預(yù)設(shè)連接地址可包括Redis主機地址、端口號及密碼等信息,本實施例不對預(yù)設(shè)連接地址的內(nèi)容作具體限定。

例如,以用戶要執(zhí)行的目標(biāo)文本內(nèi)容為顯示的所有文本內(nèi)容為例。圖3為VS Code顯示的文本內(nèi)容,也即為用戶要執(zhí)行的目標(biāo)文本內(nèi)容。在圖3中,第一預(yù)設(shè)字符為“#!”。通過對每一行內(nèi)容進行檢測,可確定第一行內(nèi)容中包含第一預(yù)設(shè)字符“#!”。通過調(diào)用vscode.window.activeTextEditor.document.getText()接口,可獲取第一行內(nèi)容。過濾掉第一行內(nèi)容中的“#!”,可獲取“#!”后面的字符串“Redis://127.0.0.1:6379”,并作為Redis服務(wù)器的預(yù)設(shè)連接地址。

由于存在找不到預(yù)設(shè)連接地址的可能性,從而對文本內(nèi)容中的每一行內(nèi)容進行檢測之后,當(dāng)在每一行內(nèi)容中未檢測到第一預(yù)設(shè)字符或第一預(yù)設(shè)字符后面為空字符串時,可通知用戶無法連接Redis服務(wù)器,本實施例對此不作具體限定。具體地,在向用戶通知時,可通過調(diào)用vscode.window.showErrorMessage()方法,向用戶報告預(yù)設(shè)連接地址URL(Uniform Resoure Locator,統(tǒng)一資源定位器)為空。同時,還可以自動退出拓展程序以停止執(zhí)行數(shù)據(jù)庫命令,本實施例對此不作具體限定。

在獲取到預(yù)設(shè)連接地址URL后,創(chuàng)建的Redis客戶端實例可以獲取到的URL作為參數(shù),連接對應(yīng)的Redis服務(wù)器。當(dāng)連接至Redis服務(wù)器后,可再執(zhí)行本步驟204。由于目標(biāo)文件內(nèi)容中可能會包含多條命令行,而Redis服務(wù)器在執(zhí)行數(shù)據(jù)庫命令行時需要一條條地執(zhí)行,從而可對目標(biāo)文本內(nèi)容進行拆分,向Redis服務(wù)器發(fā)送單條命令行。

相應(yīng)地,本實施例不對根據(jù)目標(biāo)文本內(nèi)容,向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令行的方式作具體限定,包括但不限于:根據(jù)目標(biāo)文本內(nèi)容中的第二預(yù)設(shè)字符,將目標(biāo)文本內(nèi)容拆分成數(shù)據(jù)庫命令行集合;基于數(shù)據(jù)庫命令行集合,向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令及參數(shù)。其中,第二預(yù)設(shè)字符可根據(jù)用戶在編輯文本文件時自行設(shè)置,本實施例對此不作具體限定。

例如,如圖3所示。在圖3中,第二預(yù)設(shè)字符為換行符。通過將換行符作為分隔符,將每一行內(nèi)容作為一個數(shù)組項,可將目標(biāo)文本內(nèi)容拆分成一個以行內(nèi)容為數(shù)組項的數(shù)組。其中,數(shù)組即為數(shù)據(jù)庫命令行集合,目標(biāo)文本內(nèi)容的行數(shù)即為數(shù)組的項數(shù)。

在得到數(shù)據(jù)庫命令行集合后,可向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令及參數(shù)。本實施例不對基于數(shù)據(jù)庫命令行集合,向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令及參數(shù)的方式作具體限定,包括但不限于:對于數(shù)據(jù)庫命令行集合中任一數(shù)據(jù)庫命令行,當(dāng)檢測到任一數(shù)據(jù)庫命令行不為空且不包含第一預(yù)設(shè)字符時,獲取任一數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)。向Redis服務(wù)器發(fā)送任一數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)。

由圖3可知,目標(biāo)文本內(nèi)容中可能會包含空行或者非數(shù)據(jù)庫命令行。例如,在圖3中第2行與第7行為空行。第1行的內(nèi)容包含第一預(yù)設(shè)字符“#!”及預(yù)設(shè)連接地址,而非數(shù)據(jù)庫命令行。因此,對于數(shù)據(jù)庫命令行集合中任一數(shù)據(jù)庫命令行,先要對該數(shù)據(jù)庫命令行進行檢測。當(dāng)檢測到該數(shù)據(jù)庫命令行不為空且不包含第一預(yù)設(shè)字符時,可獲取該數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)。

對于任一數(shù)據(jù)庫命令行,本實施例不對獲取任一數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)的方式作具體限定,包括但不限于:按照第三預(yù)設(shè)字符對任一數(shù)據(jù)庫命令行進行切分,將切分得到的第一項內(nèi)容作為數(shù)據(jù)庫命令,將切分得到的后續(xù)內(nèi)容作為參數(shù)。其中,第三預(yù)設(shè)字符可以為空格,本實施例對此不作具體限定。

例如,如圖3所示。以第3行的內(nèi)容為例,可將第3行的行內(nèi)容按照空格進行切分,并將切分后得到的每一項內(nèi)容存入數(shù)組中。相應(yīng)地,數(shù)組第一項內(nèi)容“set”即為數(shù)據(jù)庫命令,數(shù)組的第二項內(nèi)容“mykey”及第三項內(nèi)容“hello”即為參數(shù)。

在獲取數(shù)據(jù)命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)后,可通過調(diào)用Redis客戶端的send_command接口,傳入得到的數(shù)據(jù)庫命令及參數(shù)。通過該接口向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令及參數(shù),并等待返回結(jié)果。

其中,205、獲取Redis服務(wù)器的返回結(jié)果。

通過上述步驟204,在向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令及參數(shù)之后,Redis服務(wù)器可根據(jù)參數(shù)執(zhí)行數(shù)據(jù)庫命令,并返回相應(yīng)的結(jié)果。

例如,圖3中第3行內(nèi)容中數(shù)據(jù)庫命令為“set”,參數(shù)分別為“mykey”及“hello”,其對應(yīng)的含義為將“mykey”鍵的鍵值設(shè)置為“hello”。Redis服務(wù)器在執(zhí)行這條數(shù)據(jù)庫命令時,如果設(shè)置成功的話,返回結(jié)果為字符串“OK”。同理,對于第4行內(nèi)容對應(yīng)的數(shù)據(jù)庫命令,Redis服務(wù)器的返回結(jié)果為字符串“hello”。對于第5行內(nèi)容對應(yīng)的數(shù)據(jù)庫命令,Redis服務(wù)器的返回結(jié)果為刪除鍵的個數(shù),即整數(shù)“1”。對于第5行內(nèi)容對應(yīng)的數(shù)據(jù)庫命令,由于之前已經(jīng)對鍵進行刪除,從而Redis服務(wù)器的返回結(jié)果為空對象。

其中,206、在VS Code的輸出窗口中顯示返回結(jié)果。

在執(zhí)行本步驟之前,可先創(chuàng)建一個輸出窗口實例,以顯示返回結(jié)果。具體地,可通過調(diào)用vscode.window.createOutputChannel()接口,創(chuàng)建一個輸出窗口實例,本實施例對此不作具體限定。

關(guān)于在VS Code的輸出窗口中顯示返回結(jié)果的方式,本實施例對此不作具體限定,包括但不限于:向輸出窗口寫入返回結(jié)果;通過調(diào)用輸出窗口實例的顯示方法,在輸出窗口中顯示返回結(jié)果。

在向輸出窗口寫入返回結(jié)果之前,可先向輸出窗口寫入Redis服務(wù)器的預(yù)設(shè)連接地址、端口、執(zhí)行的數(shù)據(jù)庫命令及參數(shù),本實施例對此不作具體限定。具體地,可通過調(diào)用輸出窗口實例的appendLine方法進行寫入,本實施例對此不作具體限定?;谏鲜鰧懭脒^程,后續(xù)在顯示返回結(jié)果時,能讓用戶清楚地了解到每條數(shù)據(jù)庫命令是哪個Redis服務(wù)器執(zhí)行的、執(zhí)行端口是什么以及每條數(shù)據(jù)庫命令對應(yīng)的執(zhí)行結(jié)果是什么,即達到便于用戶查看的目的。

由于返回結(jié)果對應(yīng)的數(shù)據(jù)類型決定了如何將返回結(jié)果寫入輸出窗口,從而可根據(jù)返回結(jié)果的數(shù)據(jù)類型,對返回結(jié)果進行寫入。相應(yīng)地,本實施例不對向輸出窗口寫入返回結(jié)果的方式作具體限定,包括但不限于:獲取返回結(jié)果的數(shù)據(jù)類型;當(dāng)返回結(jié)果的數(shù)據(jù)類型為數(shù)字時,向輸出窗口寫入返回數(shù)字對應(yīng)的數(shù)據(jù)類型及返回的數(shù)字;當(dāng)返回結(jié)果的數(shù)據(jù)類型為字符串時,向輸出窗口寫入返回的字符串;當(dāng)返回結(jié)果的數(shù)據(jù)類型為空對象時,向輸出窗口寫入預(yù)設(shè)關(guān)鍵字;當(dāng)返回結(jié)果的數(shù)據(jù)類型為對象時,將返回的對象轉(zhuǎn)換為字符串,向輸出窗口寫入轉(zhuǎn)換后的字符串。

例如,圖4為對Redis服務(wù)器的返回結(jié)果進行顯示后的示意圖。在圖4中,output表示下列內(nèi)容為返回結(jié)果?!?27.0.0.1:6379>set mykeyhello”為Redis服務(wù)器的預(yù)設(shè)連接地址、端口、執(zhí)行的數(shù)據(jù)庫命令及參數(shù),主要是為了與下面的返回結(jié)果“OK”對應(yīng),讓用戶清楚地了解每條數(shù)據(jù)庫命令與其對應(yīng)的返回結(jié)果。由于返回結(jié)果“OK”的數(shù)據(jù)類型為字符串,從而可向輸出窗口寫入返回的字符串“OK”。

同理,當(dāng)返回結(jié)果的數(shù)據(jù)類型為數(shù)字時,如圖4所示,可向輸出窗口寫入返回數(shù)字對應(yīng)的數(shù)據(jù)類型“(interger)”整型,再寫入返回的數(shù)字“1”。

當(dāng)返回結(jié)果的數(shù)據(jù)類型為空對象時,如圖4所示,可向輸出窗口寫入預(yù)設(shè)關(guān)鍵字“(nil)”。其中,關(guān)鍵字nil表示無值。

當(dāng)返回結(jié)果的數(shù)據(jù)類型為對象時,可通過調(diào)用JSON的stringify方法將對象轉(zhuǎn)換成字符串,向輸出窗口寫入轉(zhuǎn)換后的字符串。其中,JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數(shù)據(jù)交換語言,以文字為基礎(chǔ)且易于讓人閱讀。

需要說明的是,在向輸出窗口寫入返回結(jié)果時,同樣可調(diào)用輸出窗口實例的appendLine方法進行寫入,本實施例對此不作具體限定。在向輸出窗口寫入返回結(jié)果后,可通過調(diào)用輸出窗口實例的show方法,顯示返回結(jié)果。

另外,當(dāng)對返回結(jié)果進行顯示后,可調(diào)用Redis客戶端實例的quit方法以關(guān)閉Redis連接?;蛘撸紤]到用戶可能還要繼續(xù)執(zhí)行數(shù)據(jù)庫命令,從而還可以重新執(zhí)行上述步驟201至本步驟206的過程,本實施例對此不作具體限定。

本發(fā)明實施例提供的方法,通過檢測用戶對文本文件的打開指令。當(dāng)檢測到打開指令時,通過VS Code,顯示用戶打開的目標(biāo)文本文件中的文本內(nèi)容?;陲@示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。根據(jù)目標(biāo)文本內(nèi)容,向Redis服務(wù)器發(fā)送數(shù)據(jù)庫命令行。獲取Redis服務(wù)器的返回結(jié)果。在VS Code的輸出窗口中顯示返回結(jié)果。由于可基于啟動的拓展程序,根據(jù)打開的文本文件中顯示的文本內(nèi)容,來執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,而不用復(fù)制或手動鍵入數(shù)據(jù)庫命令,從而節(jié)省了數(shù)據(jù)庫命令執(zhí)行時的命令輸入時間,進而提高了數(shù)據(jù)庫命令的執(zhí)行效率。

另外,由于在預(yù)設(shè)文本編輯器中可打開多個文本文件,當(dāng)用戶需要執(zhí)行大量數(shù)據(jù)庫命令時,可將數(shù)據(jù)庫命令拆分成多個文本文件,通過打開多個文本文件分別執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,從而能夠便于用戶對數(shù)據(jù)庫命令的執(zhí)行流程進行管理。

最后,由于在執(zhí)行數(shù)據(jù)庫命令時,可通過檢測到的預(yù)設(shè)連接地址,自動連接對應(yīng)的數(shù)據(jù)庫服務(wù)器,從而進一步地提高了數(shù)據(jù)庫命令的執(zhí)行效率。

本發(fā)明實施例提供了一種操作數(shù)據(jù)庫的裝置,該裝置用于執(zhí)行上述圖1或圖2對應(yīng)的實施例所提供的一種操作數(shù)據(jù)庫的方法。參見圖5,該裝置包括:

第一獲取模塊501,用于基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容,文本內(nèi)容至少包含數(shù)據(jù)庫命令行;

發(fā)送模塊502,用于根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行;

第二獲取模塊503,用于獲取數(shù)據(jù)庫服務(wù)器的返回結(jié)果;

第一顯示模塊504,用于在輸出窗口中顯示返回結(jié)果。

作為一種可選實施例,該裝置還包括:

檢測模塊,用于檢測用戶對文本文件的打開指令;

第二顯示模塊,用于在檢測到打開指令時,通過預(yù)設(shè)文本編輯器,顯示用戶打開的目標(biāo)文本文件中的文本內(nèi)容。

作為一種可選實施例,該裝置還包括:

啟動模塊,用于在檢測到用戶對預(yù)設(shè)快捷鍵的輸入指令時,啟動拓展程序;或者,當(dāng)檢測到用戶對右鍵菜單中預(yù)設(shè)選項的選中指令時,啟動拓展程序。

作為一種可選實施例,第一獲取模塊501,包括:

檢測單元,用于檢測用戶對文本內(nèi)容的選中指令;

第一獲取單元,用于在檢測到選中指令時,根據(jù)選中指令所對應(yīng)的文本選中范圍,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

作為一種可選實施例,第一獲取模塊501,還包括:

第二獲取單元,用于在未檢測到選中指令時,獲取文本內(nèi)容,并將文本內(nèi)容作為用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

作為一種可選實施例,該裝置還包括:

創(chuàng)建模塊,用于創(chuàng)建數(shù)據(jù)庫客戶端實例;

連接模塊,用于通過數(shù)據(jù)庫客戶端實例,連接數(shù)據(jù)庫服務(wù)器。

作為一種可選實施例,連接模塊,包括:

第三獲取單元,用于獲取文本內(nèi)容中的預(yù)設(shè)連接地址;

連接單元,用于通過數(shù)據(jù)庫客戶端實例,連接預(yù)設(shè)連接地址對應(yīng)的數(shù)據(jù)庫服務(wù)器。

作為一種可選實施例,第三獲取單元,用于對文本內(nèi)容中的每一行內(nèi)容進行檢測;當(dāng)在任一行內(nèi)容中檢測到第一預(yù)設(shè)字符時,獲取任一行內(nèi)容中第一預(yù)設(shè)字符后面的字符串,將字符串作為預(yù)設(shè)連接地址。

作為一種可選實施例,第三獲取單元,當(dāng)在每一行內(nèi)容中未檢測到第一預(yù)設(shè)字符或第一預(yù)設(shè)字符后面為空字符串時,通知用戶無法連接數(shù)據(jù)庫服務(wù)器。

作為一種可選實施例,發(fā)送模塊502,包括:

拆分單元,用于根據(jù)目標(biāo)文本內(nèi)容中的第二預(yù)設(shè)字符,將目標(biāo)文本內(nèi)容拆分成數(shù)據(jù)庫命令行集合;

發(fā)送單元,用于基于數(shù)據(jù)庫命令行集合,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令及參數(shù)。

作為一種可選實施例,發(fā)送單元,用于對于數(shù)據(jù)庫命令行集合中任一數(shù)據(jù)庫命令行,當(dāng)檢測到任一數(shù)據(jù)庫命令行不為空且不包含第一預(yù)設(shè)字符時,獲取任一數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù);向數(shù)據(jù)庫服務(wù)器發(fā)送任一數(shù)據(jù)庫命令行對應(yīng)的數(shù)據(jù)庫命令及參數(shù)。

作為一種可選實施例,第一顯示模塊,包括:

寫入單元,用于向輸出窗口寫入返回結(jié)果;

顯示單元,用于通過調(diào)用輸出窗口實例的顯示方法,在輸出窗口中顯示返回結(jié)果。

作為一種可選實施例,寫入單元,用于獲取返回結(jié)果的數(shù)據(jù)類型;當(dāng)返回結(jié)果的數(shù)據(jù)類型為數(shù)字時,向輸出窗口寫入返回數(shù)字對應(yīng)的數(shù)據(jù)類型及返回的數(shù)字;當(dāng)返回結(jié)果的數(shù)據(jù)類型為字符串時,向輸出窗口寫入返回的字符串;當(dāng)返回結(jié)果的數(shù)據(jù)類型為空對象時,向輸出窗口寫入預(yù)設(shè)關(guān)鍵字;當(dāng)返回結(jié)果的數(shù)據(jù)類型為對象時,將返回的對象轉(zhuǎn)換為字符串,向輸出窗口寫入轉(zhuǎn)換后的字符串。

作為一種可選實施例,第一獲取模塊501,用于調(diào)用vscode.window.activeTextEditor.selection.isEmpty接口,檢測用戶是否對文本內(nèi)容進行選中;基于接口返回的數(shù)值,當(dāng)檢測到用戶對文本內(nèi)容進行選中時,以vscode.window.activeTextEditor.selection為參數(shù),調(diào)用vscode.window.activeTextEditor.document.getText方法獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容;當(dāng)檢測到用戶未對文本內(nèi)容進行選中時,調(diào)用vscode.window.activeTextEditor.document.getText方法,獲取文本內(nèi)容,并將文本內(nèi)容作為用戶要執(zhí)行的目標(biāo)文本內(nèi)容。

本發(fā)明實施例提供的裝置,通過基于顯示的文本內(nèi)容,當(dāng)檢測到拓展程序啟動時,獲取用戶要執(zhí)行的目標(biāo)文本內(nèi)容。根據(jù)目標(biāo)文本內(nèi)容,向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)庫命令行。獲取數(shù)據(jù)庫服務(wù)器的返回結(jié)果。在輸出窗口中顯示返回結(jié)果。由于可基于啟動的拓展程序,根據(jù)打開的文本文件中顯示的文本內(nèi)容,,來執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,而不用復(fù)制或手動鍵入數(shù)據(jù)庫命令,從而節(jié)省了數(shù)據(jù)庫命令執(zhí)行時的命令輸入時間,進而提高了數(shù)據(jù)庫命令的執(zhí)行效率。

另外,由于在預(yù)設(shè)文本編輯器中可打開多個文本文件,當(dāng)用戶需要執(zhí)行大量數(shù)據(jù)庫命令時,可將數(shù)據(jù)庫命令拆分成多個文本文件,通過打開多個文本文件分別執(zhí)行對應(yīng)的數(shù)據(jù)庫命令,從而能夠便于用戶對數(shù)據(jù)庫命令的執(zhí)行流程進行管理。

最后,由于在執(zhí)行數(shù)據(jù)庫命令時,可通過檢測到的預(yù)設(shè)連接地址,自動連接對應(yīng)的數(shù)據(jù)庫服務(wù)器,從而進一步地提高了數(shù)據(jù)庫命令的執(zhí)行效率。

最后,本申請的方法僅為較佳的實施方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
丹棱县| 宁陵县| 中西区| 农安县| 泰来县| 库伦旗| 黑水县| 张北县| 探索| 班玛县| 平顶山市| 丹棱县| 辽阳县| 温泉县| 兴城市| 赤水市| 长岭县| 吉安县| 固安县| 攀枝花市| 新化县| 东城区| 内黄县| 阳春市| 奉节县| 五莲县| 旺苍县| 获嘉县| 陵川县| 孟村| 宝丰县| 图们市| 曲麻莱县| 肥城市| 金秀| 出国| 鹤壁市| 漳州市| 突泉县| 普安县| 北安市|