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

一種創(chuàng)建數(shù)據(jù)庫接口的方法、數(shù)據(jù)庫操作方法及裝置與流程

文檔序號:11590459閱讀:349來源:國知局
本申請涉及計算機(jī)
技術(shù)領(lǐng)域
:,尤其涉及一種創(chuàng)建數(shù)據(jù)庫接口的方法及裝置、數(shù)據(jù)庫操作方法及裝置。
背景技術(shù)
::隨著計算機(jī)技術(shù)的不斷發(fā)展,計算機(jī)已經(jīng)廣泛地應(yīng)用于人們的日常生活和工作中,極大地方便了人們的生活,這與計算機(jī)應(yīng)用程序功能的多樣化密不可分。在應(yīng)用程序運(yùn)行時,往往會使用數(shù)據(jù)庫來對應(yīng)用程序的數(shù)據(jù)進(jìn)行管理。應(yīng)用程序在使用數(shù)據(jù)庫時,需要通過數(shù)據(jù)庫接口來執(zhí)行數(shù)據(jù)的寫入、查找、刪除等數(shù)據(jù)操作。在現(xiàn)有技術(shù)中,應(yīng)用程序會利用應(yīng)用程序中的代碼創(chuàng)建數(shù)據(jù)庫接口,這樣,在接收到針對數(shù)據(jù)庫的操作指令后,便可以利用創(chuàng)建的數(shù)據(jù)庫接口執(zhí)行相應(yīng)的數(shù)據(jù)庫操作。那么開發(fā)人員在對應(yīng)用程序進(jìn)行開發(fā)時,需要在程序的源代碼中寫入實(shí)現(xiàn)數(shù)據(jù)庫接口功能的所有代碼,該數(shù)據(jù)庫接口的功能包括打開數(shù)據(jù)庫、操作數(shù)據(jù)庫中數(shù)據(jù)、關(guān)閉數(shù)據(jù)庫、更新數(shù)據(jù)庫等。隨著應(yīng)用程序功能的增多,單個應(yīng)用程序可能會對多個數(shù)據(jù)庫進(jìn)行操作,單個數(shù)據(jù)庫中往往包含多個數(shù)據(jù)表,每個數(shù)據(jù)表中往往也包含多個字段,這就需要開發(fā)人員在程序的源代碼中,分別為各字段寫入實(shí)現(xiàn)數(shù)據(jù)庫接口功能的所有代碼,其代碼量是相當(dāng)大的。在開發(fā)人員將應(yīng)用程序的源代碼編寫完成后,需要經(jīng)過編譯過程,才能將利用源代碼編寫的源程序轉(zhuǎn)換為計算機(jī)可執(zhí)行的目標(biāo)程序。那么,由于現(xiàn)有的創(chuàng)建數(shù)據(jù)庫接口的方法需要在源程序中部署大量的源代碼,導(dǎo)致在對源代碼進(jìn)行編譯時,耗費(fèi)的資源較高。技術(shù)實(shí)現(xiàn)要素:本申請實(shí)施例提供一種創(chuàng)建數(shù)據(jù)庫接口的方法,用以解決現(xiàn)有技術(shù)中實(shí)現(xiàn)數(shù)據(jù)庫接口的功能時需要在源程序中部署大量的源代碼,導(dǎo)致在對源代碼進(jìn)行編譯時耗費(fèi)資源較高的問題。本申請實(shí)施例采用下述技術(shù)方案:一種創(chuàng)建數(shù)據(jù)庫接口的方法,包括:從預(yù)設(shè)的配置文件中確定用于創(chuàng)建數(shù)據(jù)庫接口的至少一個操作語句模板;根據(jù)所述至少一個操作語句模板,創(chuàng)建所述操作語句模板對應(yīng)的數(shù)據(jù)庫接口,所述數(shù)據(jù)庫接口用于在接收到操作指令時確定操作語句模板并根據(jù)所述操作語句模板對數(shù)據(jù)庫執(zhí)行操作。本申請實(shí)施例還提供一種數(shù)據(jù)庫操作方法,用以解決現(xiàn)有技術(shù)中實(shí)現(xiàn)數(shù)據(jù)庫接口的功能時需要在源程序中部署大量的源代碼,導(dǎo)致在對源代碼進(jìn)行編譯時耗費(fèi)資源較高的問題。本申請實(shí)施例采用下述技術(shù)方案:一種數(shù)據(jù)庫操作方法,包括:接收針對數(shù)據(jù)庫的操作指令;根據(jù)預(yù)先創(chuàng)建的數(shù)據(jù)庫接口,從配置文件中確定與所述操作指令對應(yīng)的操作語句模板,所述數(shù)據(jù)庫接口,是通過本申請?zhí)峁┑膭?chuàng)建數(shù)據(jù)庫接口的方法創(chuàng)建的;根據(jù)所述操作語句模板和所述操作指令中包含的實(shí)參,得到針對所述數(shù)據(jù)庫的操作語句;根據(jù)所述操作語句,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作。本申請實(shí)施例采用的上述至少一個技術(shù)方案能夠達(dá)到以下有益效果:通過從預(yù)設(shè)的配置文件中確定用于創(chuàng)建數(shù)據(jù)庫接口的至少一個操作語句模板,然后根據(jù)所述至少一個操作語句模板,創(chuàng)建所述操作語句模板對應(yīng)的數(shù)據(jù)庫接口,即可在后續(xù)利用創(chuàng)建的數(shù)據(jù)庫接口進(jìn)行數(shù)據(jù)庫操作。這樣,即可以從配置文件中獲取用于實(shí)現(xiàn)數(shù)據(jù)庫接口功能的代碼,該部分代碼便無需保存在應(yīng)用程序源代碼中,減少了應(yīng)用程序源代碼的代碼量,由于無需對配置文件中的代碼進(jìn)行編譯,因此降低了對應(yīng)用程序源代碼進(jìn)行編譯時耗費(fèi)的資源。附圖說明此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:圖1為本申請實(shí)施例提供的一種創(chuàng)建數(shù)據(jù)庫接口的方法的實(shí)現(xiàn)流程示意圖;圖2為本申請實(shí)施例提供的一種創(chuàng)建數(shù)據(jù)庫接口的方法的實(shí)現(xiàn)流程示意圖;圖3為本申請實(shí)施例提供的一種數(shù)據(jù)庫操作方法的實(shí)現(xiàn)流程示意圖;圖4為本申請實(shí)施例提供的數(shù)據(jù)表升級方法的實(shí)現(xiàn)流程示意圖;圖5為本申請實(shí)施例提供的并行操作數(shù)據(jù)庫的方法的實(shí)現(xiàn)流程示意圖;圖6為本申請實(shí)施例提供的數(shù)據(jù)加密過程的實(shí)現(xiàn)流程示意圖;圖7為本申請實(shí)施例提供的數(shù)據(jù)解密過程的實(shí)現(xiàn)流程示意圖;圖8為本申請實(shí)施例提供的一種創(chuàng)建數(shù)據(jù)庫接口的裝置的具體結(jié)構(gòu)示意圖;圖9為本申請實(shí)施例提供的一種數(shù)據(jù)庫操作裝置的具體結(jié)構(gòu)示意圖。具體實(shí)施方式為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例。基于本申請中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。以下結(jié)合附圖,詳細(xì)說明本申請各實(shí)施例提供的技術(shù)方案。為解決現(xiàn)有技術(shù)中,實(shí)現(xiàn)數(shù)據(jù)庫接口的功能時,需要在源程序中部署大量的源代碼,導(dǎo)致在對源代碼進(jìn)行編譯時耗費(fèi)資源較高的問題,本申請實(shí)施例提供一種創(chuàng)建數(shù)據(jù)庫接口的方法。本申請實(shí)施例提供的創(chuàng)建數(shù)據(jù)庫接口的方法的執(zhí)行主體可以是終端設(shè)備,例如,智能手機(jī)、平板電腦、個人計算機(jī),等等。此外,該方法的執(zhí)行主體還可以是應(yīng)用程序本身。為便于描述,下文以該方法的執(zhí)行主體為應(yīng)用程序?yàn)槔?,對該方法的?shí)施方式進(jìn)行介紹??梢岳斫?,該方法的執(zhí)行主體為應(yīng)用程序只是一種示例性的說明,并不應(yīng)理解為對該方法的限定。如
背景技術(shù)
:中所描述的,應(yīng)用程序在進(jìn)行數(shù)據(jù)庫操作時,會通過數(shù)據(jù)庫接口來進(jìn)行數(shù)據(jù)操作。在面向?qū)ο髴?yīng)用程序中,數(shù)據(jù)庫接口是以數(shù)據(jù)訪問對象(dataaccessobject,dao)的形式存在的。dao中可以包含多種數(shù)據(jù)庫操作方法,即一個dao中可以包含多個數(shù)據(jù)庫接口。那么應(yīng)用程序在調(diào)用數(shù)據(jù)庫接口進(jìn)行數(shù)據(jù)庫操作時,會調(diào)用dao中的數(shù)據(jù)庫操作方法,來執(zhí)行數(shù)據(jù)庫操作。需要說明的是,在面向?qū)ο髴?yīng)用程序中,方法指的是類別或者是對象的一種子程序,如同過程化編程語言的程序,一個方法通常由一系列的語句所組成。在面向?qū)ο蟮膽?yīng)用程序中,是利用源代碼中數(shù)據(jù)庫接口的定義和數(shù)據(jù)庫接口的實(shí)現(xiàn)方法,來創(chuàng)建數(shù)據(jù)庫接口。其中,接口的定義只是對接口的說明,接口的定義往往會包含接口的名稱、接口參數(shù)、參數(shù)類型等內(nèi)容。而接口的實(shí)現(xiàn)方法是指用于實(shí)現(xiàn)接口功能的具體方法,接口的實(shí)現(xiàn)方法中會包含實(shí)現(xiàn)接口功能的具體操作步驟,其代碼量較大。在現(xiàn)有技術(shù)中,對于數(shù)據(jù)庫接口的定義和實(shí)現(xiàn)方法都會在應(yīng)用程序的源代碼中進(jìn)行完整的編寫,以便應(yīng)用程序可以根據(jù)編寫的代碼創(chuàng)建數(shù)據(jù)庫接口。這樣,源代碼的代碼量往往會很大,那么,在對源代碼進(jìn)行編譯時,消耗的硬件資源會較高。所述數(shù)據(jù)庫可以是應(yīng)用程序所在終端本地的數(shù)據(jù)庫,例如sqlite數(shù)據(jù)庫等。為了解決該問題,對于基于動態(tài)編程語言編寫的應(yīng)用程序,可以僅在應(yīng)用程序源代碼中聲明數(shù)據(jù)庫接口的定義,然后將數(shù)據(jù)庫接口的具體實(shí)現(xiàn)方法保存在配置文件中。配置文件中的代碼無需進(jìn)行編譯,在應(yīng)用程序運(yùn)行時,應(yīng)用程序可以解析配置文件,然后根據(jù)配置文件中的代碼創(chuàng)建數(shù)據(jù)庫接口,那么在進(jìn)行數(shù)據(jù)庫接口調(diào)用時,即可調(diào)用配置文件中保存的數(shù)據(jù)庫接口的實(shí)現(xiàn)方法,完成數(shù)據(jù)庫操作。所謂動態(tài)編程語言,指在應(yīng)用程序運(yùn)行時可以改變應(yīng)用程序結(jié)構(gòu)的語言,應(yīng)用程序結(jié)構(gòu)的改變比如可以是新的函數(shù)被引入應(yīng)用程序、應(yīng)用程序中已有的函數(shù)被刪除等應(yīng)用程序結(jié)構(gòu)上的變化。常見的動態(tài)編程語言比如可以是ecmascript(javascript)語言、ruby語言、python語言等。此外objective-c語言可以憑借其消息發(fā)送機(jī)制,實(shí)現(xiàn)方法的調(diào)用。同時,objective-c也可以在運(yùn)行時為指定類動態(tài)添加方法,實(shí)現(xiàn)動態(tài)調(diào)用的功能?;趧討B(tài)編程語言的動態(tài)特性,應(yīng)用程序即可根據(jù)配置文件中保存的數(shù)據(jù)庫接口的實(shí)現(xiàn)方法,進(jìn)行數(shù)據(jù)庫操作。在利用數(shù)據(jù)庫接口進(jìn)行數(shù)據(jù)庫操作前,會預(yù)先創(chuàng)建數(shù)據(jù)庫接口。那么,在描述如何利用數(shù)據(jù)庫接口進(jìn)行數(shù)據(jù)庫操作之前,首先對本申請中創(chuàng)建數(shù)據(jù)庫接口的方法進(jìn)行詳細(xì)介紹。該方法的實(shí)現(xiàn)流程示意圖如圖1所示,包括下述步驟:步驟s101:從預(yù)設(shè)的配置文件中確定用于創(chuàng)建數(shù)據(jù)庫接口的至少一個操作語句模板;其中,預(yù)設(shè)的配置文件中保存有至少一個操作語句模板,操作語句模板具體包括對數(shù)據(jù)庫執(zhí)行各種操作的數(shù)據(jù)庫操作語句,各操作語句模板即為各數(shù)據(jù)庫接口的具體實(shí)現(xiàn)方法。配置文件可以是由開發(fā)人員預(yù)先編寫的,為了增強(qiáng)配置文件的通用性,在實(shí)際應(yīng)用中,該配置文件可以是利用可擴(kuò)展標(biāo)記語言(extensiblemarkuplanguage,xml)編寫的,由于xml語言符合萬維網(wǎng)聯(lián)盟(worldwidewebconsortium,w3c)標(biāo)準(zhǔn),其通用性較強(qiáng)。為了減少配置文件中的代碼量,對于數(shù)據(jù)庫操作的方法相同,但是表名和/或字段名等參數(shù)值不同的數(shù)據(jù)庫操作語句,可以將操作語句模板中的數(shù)據(jù)庫操作語句中的表名、字段名等參數(shù)設(shè)置為形參。在sql語句中,形參可以用占位符“?”表示,在使用包含形參的操作語句時,可以將操作語句和參數(shù)進(jìn)行參數(shù)綁定,然后執(zhí)行數(shù)據(jù)庫操作。參數(shù)綁定是指將實(shí)參與預(yù)處理過的操作語句中相應(yīng)的占位符建立關(guān)聯(lián)關(guān)系的操作,在執(zhí)行參數(shù)綁定操作后,數(shù)據(jù)庫便可以利用綁定有參數(shù)的操作語句執(zhí)行數(shù)據(jù)庫操作。這樣在配置文件中,便可以將僅僅是表名和/或字段名等參數(shù)值不同的數(shù)據(jù)庫操作語句,寫作同一個包含形參的數(shù)據(jù)庫操作語句。那么在實(shí)際對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)庫操作時,通過將實(shí)參賦值給該操作語句中的形參,即可得到實(shí)際執(zhí)行操作時的數(shù)據(jù)庫操作語句,利用綁定參數(shù)的數(shù)據(jù)庫操作語句,即可執(zhí)行數(shù)據(jù)庫操作。這樣,開發(fā)人員便可以不必為數(shù)據(jù)庫中不同表名和/或不同字段的相同數(shù)據(jù)庫操作,單獨(dú)寫數(shù)據(jù)庫操作語句。需要說明的是,實(shí)現(xiàn)一個完整的數(shù)據(jù)庫接口所使用的操作語句,會包括個性化的操作語句和必要且通用的操作語句。個性化的操作語句指不同的數(shù)據(jù)庫接口中可以不同的操作語句,比如查找類操作語句、存儲類操作語句、刪除類操作語句等等。所謂查找類操作語句為對數(shù)據(jù)進(jìn)行查找的操作語句,比如結(jié)構(gòu)化查詢語言(structuredquerylanguage,sql)中的select語句;所謂存儲類操作語句,為將數(shù)據(jù)存儲至數(shù)據(jù)庫的語句,比如sql中的insert語句和update語句;所謂刪除類操作語句,指將數(shù)據(jù)從數(shù)據(jù)庫中刪除的語句,比如sql中的delet語句。必要且通用的操作語句指每個數(shù)據(jù)接口都需要執(zhí)行的操作,比如數(shù)據(jù)庫開啟語句、數(shù)據(jù)庫關(guān)閉語句等等。為了便于后續(xù)描述,這里將數(shù)據(jù)庫操作中個性化的操作語句稱為第一操作語句,將數(shù)據(jù)庫操作中必要且通用的操作語句稱為第二操作語句。那么,可以只在配置文件中,實(shí)現(xiàn)第一操作語句的操作語句模板,對于第二操作語句,可以將其從配置文件中分離出來。這樣,配置文件中的代碼量將會大大減少,降低了應(yīng)用程序復(fù)雜度,這樣開發(fā)人員在編寫配置文件時,只需編寫第一操作語句的操作語句模板即可。需要說明的是,為了在后續(xù)接收到針對數(shù)據(jù)庫的操作指令時,能夠快速響應(yīng)于該指令執(zhí)行數(shù)據(jù)操作,最好是在應(yīng)用程序啟動后便立刻生成數(shù)據(jù)庫接口。在應(yīng)用程序的代碼中,開發(fā)人員在聲明數(shù)據(jù)庫接口定義的同時,還會設(shè)置配置文件的路徑。這樣,在應(yīng)用程序啟動后,即可以根據(jù)應(yīng)用程序代碼中的配置文件路徑,讀取配置文件,并對配置文件進(jìn)行解析,便可以得到配置文件中定義的各數(shù)據(jù)庫接口的操作語句模板。以便后續(xù)根據(jù)數(shù)據(jù)庫接口定義和解析得到的操作語句模板生成數(shù)據(jù)庫接口。步驟s102:根據(jù)所述至少一個操作語句模板,創(chuàng)建所述操作語句模板對應(yīng)的數(shù)據(jù)庫接口。所述數(shù)據(jù)庫接口用于在接收到操作指令時確定操作語句模板并根據(jù)所述操作語句模板對數(shù)據(jù)庫執(zhí)行操作。在面向?qū)ο髴?yīng)用程序中,在創(chuàng)建用于實(shí)現(xiàn)數(shù)據(jù)庫接口功能的數(shù)據(jù)訪問對象時,會預(yù)先生成用于生成該對象的類,然后再將生成的類中的方法指定為對各操作語句模板進(jìn)行處理的模板處理函數(shù)。模板處理函數(shù)用于根據(jù)操作語句模板和實(shí)參得到操作語句;由于各操作語句模板的實(shí)際操作語句不同,操作語句模板中的參數(shù)個數(shù)也不同,那么對于不同的操作語句模板,可以確定與之對應(yīng)模板處理函數(shù),并將類中的方法指定為確定的模板處理函數(shù)。最后根據(jù)生成的類創(chuàng)建對象,即為數(shù)據(jù)訪問對象,需要說明的是,可以為創(chuàng)建的數(shù)據(jù)訪問對象與配置文件建立關(guān)聯(lián)關(guān)系,以便在調(diào)用數(shù)據(jù)訪問對象時,可以根據(jù)該關(guān)聯(lián)關(guān)系確定配置文件中的操作語句模板。需要說明的是,在生成數(shù)據(jù)訪問對象時,可以僅為該接口定義中聲明的所有接口創(chuàng)建一個數(shù)據(jù)訪問對象,也可以分別為該接口定義中聲明的各個接口分別創(chuàng)建數(shù)據(jù)訪問對象,本申請實(shí)施例對此不做限定,下面以為接口定義中聲明的所有接口創(chuàng)建一個數(shù)據(jù)訪問對象為例,對數(shù)據(jù)訪問對象的創(chuàng)建過程進(jìn)行描述。下面以objective-c語言為例,詳細(xì)說明本申請?zhí)峁┑膭?chuàng)建數(shù)據(jù)庫接口的方法,在以objective-c語言編寫的應(yīng)用程序中的具體實(shí)現(xiàn)過程。在以objective-c語言編寫的應(yīng)用程序中,開發(fā)人員在應(yīng)用程序代碼中預(yù)先編寫了數(shù)據(jù)庫接口定義。由于接口定義中已經(jīng)聲明了接口的名稱、接口參數(shù)、參數(shù)類型等屬性,那么為了提高生成數(shù)據(jù)訪問對象的效率,可以借助應(yīng)用程序代碼中的接口定義,來生成數(shù)據(jù)訪問對象。通過應(yīng)用程序代碼中的接口定義和配置文件,生成數(shù)據(jù)訪問對象的實(shí)現(xiàn)流程示意圖如圖2所示,具體包括如下步驟:步驟s201:解析配置文件和接口定義;在對配置文件進(jìn)行解析時,可以根據(jù)應(yīng)用程序代碼中定義的配置文件的路徑,確定配置文件,然后對配置文件進(jìn)行解析,即可得到配置文件中的操作語句模板。同樣,在對接口定義進(jìn)行解析后,即可得到接口定義中聲明的各個接口,即得到接口列表。例如,在xml格式的配置文件中,對某業(yè)務(wù)的某個select操作語句的操作語句模板的定義如下:<selectid=”querymsgswithuserid”arguments=”userid”result=”[apnewfindcontactmsg]”parallel=”true”>select*from$(t)whereuserid=#{uerid}orderbycreattimedesc</select>其中id部分為該操作語句模板的名稱,即為方法名,arguments部分為操作語句模板中的參數(shù),result部分定義了生成的數(shù)據(jù)對象的類,parallel部分用于指定該方法是否可以自動并發(fā)?!皊elect*from$(t)whereuserid=#{uerid}orderbycreattimedesc”部分為操作語句模板,其本質(zhì)也是數(shù)據(jù)庫操作語句。與該操作語句模板對應(yīng)的objective-c應(yīng)用程序源代碼中的接口定義如下:@protocolcontactdaoproxy<apdaoprotocol>-(apnewfindcontactmsg*)querymsgswithuserid:(nsstring*)userid;@end其中,querymsgswithuserid即為接口的名稱,即該源代碼中定義的接口為querymsgswithuserid。步驟s202:判斷是否已經(jīng)存在與接口定義中聲明的各接口對應(yīng)的類;步驟s203:如果判斷結(jié)果為是,則證明已經(jīng)預(yù)先生成過與該接口定義中聲明的接口對應(yīng)的類。則可以直接利用已經(jīng)生成的該類,創(chuàng)建數(shù)據(jù)訪問對象。步驟s204:如果判斷結(jié)果為否,則生成用于創(chuàng)建訪問對象的類;生成的類的名字可以和根據(jù)接口定義創(chuàng)建的接口對象名字相同,以便后續(xù)可以根據(jù)接口對象的名字,判斷是否已為某接口對象生成了類。步驟s205:將各接口定義中的所有方法添加到生成的類中;步驟s206:將類中的各方法的實(shí)現(xiàn)綁定為與各方法對應(yīng)的模板處理函數(shù);其中,模板處理函數(shù)用于根據(jù)操作語句模板和實(shí)參得到操作語句。各個接口對應(yīng)的模板處理函數(shù),可以根據(jù)各操作語句模板中包含的形參來確定。模板處理函數(shù)具體可以由接口包含的形參的個數(shù)確定,即可以將各接口的模板處理函數(shù)指定為,能夠接收的參數(shù)的數(shù)量與接口包含的形參的數(shù)量相同的模板處理函數(shù)。步驟s207:利用已經(jīng)添加所有方法的類,生成數(shù)據(jù)訪問對象,并為創(chuàng)建的數(shù)據(jù)訪問對象與配置文件建立關(guān)聯(lián)關(guān)系。在得到數(shù)據(jù)訪問對象后,還可以將該數(shù)據(jù)訪問對象轉(zhuǎn)換為指向接口中方法的指針,通過該指針,可以直接調(diào)用接口中定義的方法。本申請?zhí)峁┑膭?chuàng)建數(shù)據(jù)庫接口的方法,通過從預(yù)設(shè)的配置文件中確定用于創(chuàng)建數(shù)據(jù)庫接口的至少一個操作語句模板,然后根據(jù)所述至少一個操作語句模板,創(chuàng)建所述操作語句模板對應(yīng)的數(shù)據(jù)庫接口,即可在后續(xù)利用創(chuàng)建的數(shù)據(jù)庫接口進(jìn)行數(shù)據(jù)庫操作。這樣,即可以從配置文件中獲取用于實(shí)現(xiàn)數(shù)據(jù)庫接口功能的代碼,該部分代碼便無需保存在應(yīng)用程序源代碼中,減少了應(yīng)用程序源代碼的代碼量,由于無需對配置文件中的代碼進(jìn)行編譯,因此降低了對應(yīng)用程序源代碼進(jìn)行編譯時耗費(fèi)的資源。同時,通過本申請?zhí)峁┑膭?chuàng)建數(shù)據(jù)庫接口的方法,開發(fā)人員不必在代碼中為每一個數(shù)據(jù)庫接口編寫完整的實(shí)現(xiàn)方法,而只需在配置文件中,編寫數(shù)據(jù)庫操作中個性化的操作語句對應(yīng)的操作語句模板、接口名稱和參數(shù),并且在源代碼中定義接口說明,從而降低了應(yīng)用開發(fā)的復(fù)雜度,方便開發(fā)人員對數(shù)據(jù)庫接口的實(shí)現(xiàn),提高了編寫數(shù)據(jù)庫接口的實(shí)現(xiàn)方法時的便利性。在創(chuàng)建數(shù)據(jù)庫接口后,便可以在接收到針對該數(shù)據(jù)庫接口的操作指令后,根據(jù)創(chuàng)建的數(shù)據(jù)庫接口,從配置文件中確定操作語句模板,并利用確定的操作語句模板和操作指令中的實(shí)參,得到操作語句,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作。下面將對利用得到的數(shù)據(jù)庫接口進(jìn)行數(shù)據(jù)庫操作的方法,進(jìn)行詳細(xì)描述。該方法的實(shí)現(xiàn)流程示意圖如圖3所示,包括下述步驟:步驟s301:接收針對數(shù)據(jù)庫的操作指令;步驟s302:根據(jù)預(yù)先創(chuàng)建的數(shù)據(jù)庫接口,從配置文件中確定與所述操作指令對應(yīng)的操作語句模板,所述數(shù)據(jù)庫接口,是通過本申請實(shí)施例提供的創(chuàng)建數(shù)據(jù)庫接口的方法創(chuàng)建的。在接收到針對數(shù)據(jù)庫的操作指令后,可以根據(jù)預(yù)先生成的數(shù)據(jù)庫接口,確定與該操作指令對應(yīng)的模板處理函數(shù),然后從配置文件中確定與確定的模板處理函數(shù)對應(yīng)的操作語句模板。模板處理函數(shù)可以確定配置文件中與該模板處理函數(shù)對應(yīng)的操作語句模板,即為與接收到的操作指令對應(yīng)的操作語句模板。在面向?qū)ο蟮膽?yīng)用程序中,在接收到針對數(shù)據(jù)庫的操作指令后,會調(diào)用數(shù)據(jù)訪問對象中的方法。由于數(shù)據(jù)訪問對象中的方法的實(shí)現(xiàn)為模板處理函數(shù),那么在調(diào)用數(shù)據(jù)訪問對象中與數(shù)據(jù)庫的操作指令對應(yīng)的方法時,會執(zhí)行與該方法對應(yīng)的模板處理函數(shù)。需要說明的是,在面向?qū)ο髴?yīng)用程序中,應(yīng)用程序?qū)ε渲梦募馕鐾旰?,會根?jù)配置文件中編寫的每個操作語句模板,生成相應(yīng)的接口方法對象,那么具體地確定操作語句模板的過程,即為確定操作語句模板對應(yīng)的接口方法對象的過程。為了方便目標(biāo)處理函數(shù)從配置文件中確定對應(yīng)的操作語句模板,可以在給接口中的方法綁定模板處理函數(shù)時,將模板處理函數(shù)的函數(shù)名命名為對應(yīng)的操作語句模板的名稱。那么,模板處理函數(shù)即可根據(jù)自身的函數(shù)名,去配置文件中查找相同名稱的操作語句模板。步驟s303:根據(jù)所述操作語句模板和所述操作指令中包含的實(shí)參,得到針對所述數(shù)據(jù)庫的操作語句;在從配置文件中確定與操作指令對應(yīng)的操作語句模板后,可以將所述操作指令中包含的實(shí)參,與所述操作語句模板中對應(yīng)的形參相關(guān)聯(lián),得到針對所述數(shù)據(jù)庫的操作語句。在實(shí)際應(yīng)用中,可以將操作指令中包含的實(shí)參,與所述操作語句模板進(jìn)行參數(shù)綁定,即可得到針對數(shù)據(jù)庫的操作語句。步驟s304:根據(jù)所述操作語句,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作。在得到針對數(shù)據(jù)庫的操作語句后,即可利用該操作語句執(zhí)行數(shù)據(jù)庫操作。需要說明的是,如果操作語句模板中實(shí)現(xiàn)的操作語句,具體包括第一操作語句和第二操作語句,那么,可以根據(jù)操作語句模板和操作指令中包含的實(shí)參,得到針對數(shù)據(jù)庫的第一操作語句,然后利用得到的第一操作語句和預(yù)設(shè)的第二操作語句,來執(zhí)行針對數(shù)據(jù)庫的數(shù)據(jù)庫操作。在執(zhí)行數(shù)據(jù)庫操作后,在面向?qū)ο蟮膽?yīng)用程序中,當(dāng)數(shù)據(jù)庫操作為查找類操作時,可以利用從數(shù)據(jù)庫中查找到的數(shù)據(jù),得到數(shù)據(jù)對象。進(jìn)而可以利用得到的數(shù)據(jù)對象,進(jìn)行后續(xù)操作。在進(jìn)行數(shù)據(jù)庫操作時,如果數(shù)據(jù)庫中的數(shù)據(jù)表不是最新版本的表,可能導(dǎo)致某些數(shù)據(jù)庫操作無法進(jìn)行。那么可以在根據(jù)操作語句,對數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作前,判斷所述操作指令針對的數(shù)據(jù)庫的數(shù)據(jù)表是否需要升級,如果數(shù)據(jù)表需要升級,則從配置文件中確定將數(shù)據(jù)表從當(dāng)前版本更新至目標(biāo)版本所需執(zhí)行的升級操作,并執(zhí)行確定的升級操作。下面將詳細(xì)描述本申請實(shí)施例提供的數(shù)據(jù)表升級方法,該方法的實(shí)現(xiàn)流程示意圖如圖4所示,包括下述步驟:步驟s401:接收數(shù)據(jù)表標(biāo)識;數(shù)據(jù)表標(biāo)識用于對數(shù)據(jù)表進(jìn)行標(biāo)識,數(shù)據(jù)表標(biāo)識比如可以是數(shù)據(jù)表的名稱。步驟s402:根據(jù)接收到的數(shù)據(jù)表標(biāo)識,判斷該數(shù)據(jù)表標(biāo)識對應(yīng)的數(shù)據(jù)表,在應(yīng)用程序本次啟動后,是否已經(jīng)被執(zhí)行過初始化操作;其中,這里所說的初始化操作,指數(shù)據(jù)表在應(yīng)用程序啟動后,已經(jīng)被執(zhí)行過升級操作或已經(jīng)被確定無需執(zhí)行升級操作。在對數(shù)據(jù)表執(zhí)行完升級操作,或確定數(shù)據(jù)表無需執(zhí)行升級操作后,可以將數(shù)據(jù)表的數(shù)據(jù)表標(biāo)識記錄在預(yù)定的存儲空間中,該預(yù)定的存儲空間比如可以是內(nèi)存。那么判斷數(shù)據(jù)表標(biāo)識對應(yīng)的數(shù)據(jù)表是否已被執(zhí)行過初始化操作時,便可以查詢預(yù)定的存儲空間中,是否保存有該數(shù)據(jù)表標(biāo)識,如果有,則說明該數(shù)據(jù)表標(biāo)識對應(yīng)的數(shù)據(jù)表已經(jīng)被執(zhí)行過初始化操作了。步驟s403:如果數(shù)據(jù)表已被執(zhí)行過初始化操作,則結(jié)束本次升級過程。步驟s404:如果數(shù)據(jù)表未被執(zhí)行過初始化操作,則判斷數(shù)據(jù)表是否存在。接收到的數(shù)據(jù)表標(biāo)識是從操作指令中得到的,該數(shù)據(jù)表標(biāo)識對應(yīng)的數(shù)據(jù)表并不一定存在,那么可以判定該數(shù)據(jù)表是否已存在于該指令對應(yīng)的數(shù)據(jù)庫中。在每次創(chuàng)建表或升級表后,都可以將數(shù)據(jù)表的數(shù)據(jù)表標(biāo)識和版本號記錄到預(yù)設(shè)的數(shù)據(jù)表中,如果預(yù)設(shè)的數(shù)據(jù)表中沒有記錄某個數(shù)據(jù)表的版本號,則說明該數(shù)據(jù)表不存在。步驟s405:如果數(shù)據(jù)表不存在,則根據(jù)接收到的數(shù)據(jù)表標(biāo)識,新建數(shù)據(jù)表;新建的數(shù)據(jù)表即為與接收到的數(shù)據(jù)表標(biāo)識對應(yīng)的數(shù)據(jù)表。步驟s406:在新建數(shù)據(jù)表后,則在預(yù)設(shè)的數(shù)據(jù)表中,記錄該數(shù)據(jù)表的數(shù)據(jù)表標(biāo)識和版本號;步驟s407:如果數(shù)據(jù)表存在,則根據(jù)接收到的數(shù)據(jù)庫表標(biāo)識,從預(yù)設(shè)的數(shù)據(jù)表中確定該數(shù)據(jù)表的版本號;步驟s408:判斷確定的數(shù)據(jù)表的版本號,是否小于配置文件中設(shè)定的目標(biāo)版本的版本號;步驟s409:如果不小于,則結(jié)束本次升級過程;確定的數(shù)據(jù)表的版本號如果不小于配置文件中設(shè)定的目標(biāo)版本的版本號,則表明該數(shù)據(jù)庫當(dāng)前版本已經(jīng)是目標(biāo)版本。步驟s410:如果小于,則判斷該數(shù)據(jù)表是否可以在升級時重置;數(shù)據(jù)表可以在升級時重置,指可以在升級時直接刪除數(shù)據(jù)表,然后新建目標(biāo)版本的數(shù)據(jù)表。在實(shí)際應(yīng)用中,判斷該數(shù)據(jù)表是否可以在升級時重置,可以根據(jù)配置文件中的設(shè)置來確定。步驟s411:如果該數(shù)據(jù)表可以在升級時重置,則直接重置該數(shù)據(jù)表,并在預(yù)設(shè)的數(shù)據(jù)表中,記錄該數(shù)據(jù)表的數(shù)據(jù)表標(biāo)識和版本號,然后結(jié)束本次升級過程;步驟s412:如果該數(shù)據(jù)表不可以在升級時重置,則從配置文件中確定將所述數(shù)據(jù)表從當(dāng)前版本更新至目標(biāo)版本所需執(zhí)行的升級操作;開發(fā)人員可以預(yù)先在配置文件中,定義將數(shù)據(jù)表從當(dāng)前版本更新至目標(biāo)版本所需執(zhí)行的升級操作。例如,下述代碼定義了將數(shù)據(jù)表升級至3.1版本以及升級至3.2版本時,所需執(zhí)行的升級操作,其中“toversion”屬性的值,聲明了“upgrade”標(biāo)簽中的升級操作對應(yīng)的目標(biāo)版本,“altertable”語句用于在已有的表中添加、修改或刪除列,“${t}”為形參,用于綁定數(shù)據(jù)表名。步驟s413:執(zhí)行從配置文件中確定的升級操作;步驟s414:判斷升級是否成功;步驟s415:若升級操作成功,則在預(yù)設(shè)的數(shù)據(jù)表中,記錄該數(shù)據(jù)表的數(shù)據(jù)表標(biāo)識和版本號,然后結(jié)束本次升級過程;步驟s416:若升級失敗,則結(jié)束本次升級過程。需要說明的是,在結(jié)束本次升級過程時,可以將數(shù)據(jù)表的數(shù)據(jù)表標(biāo)識記錄在預(yù)定的存儲空間中,以便后續(xù)可以根據(jù)預(yù)定的存儲空間中記錄的數(shù)據(jù)表標(biāo)識,判斷接收到的數(shù)據(jù)表標(biāo)識對應(yīng)的數(shù)據(jù)表,在應(yīng)用程序本次啟動后,是否已經(jīng)被執(zhí)行過初始化操作。本申請?zhí)峁┑臄?shù)據(jù)庫升級方法,相對于現(xiàn)有技術(shù)的數(shù)據(jù)庫升級方法,應(yīng)用程序的代碼量大大減少,并且通過將數(shù)據(jù)表的具體升級操作保存在配置文件中,減少了應(yīng)用程序的代碼量,進(jìn)而減少了對源代碼進(jìn)行編譯時耗費(fèi)的資源。最后編譯生成的目標(biāo)程序的大小也會小于現(xiàn)有技術(shù)中目標(biāo)程序的大小,進(jìn)而減少了對存儲空間的占用。這里所說的目標(biāo)程序,為通過編譯過程生成的計算機(jī)可執(zhí)行程序,目標(biāo)程序中代碼的形式往往是二進(jìn)制形式。同時,相對于現(xiàn)有技術(shù)中將數(shù)據(jù)表的版本號單獨(dú)保存到其它存儲位置,本申請?zhí)峁┑臄?shù)據(jù)庫升級方法,通過將數(shù)據(jù)表的版本號記錄到預(yù)設(shè)的數(shù)據(jù)表中,來記錄數(shù)據(jù)表的當(dāng)前版本,數(shù)據(jù)不易丟失,數(shù)據(jù)安全性較高。在實(shí)際應(yīng)用中,某些數(shù)據(jù)庫操作可能會期望與其它數(shù)據(jù)庫操作并發(fā)執(zhí)行,比如,在連續(xù)接收消息時,數(shù)據(jù)庫會執(zhí)行大量的消息寫入操作,為了避免會話界面延遲顯示消息,最好在執(zhí)行消息寫入操作的同時,并行執(zhí)行讀取消息的數(shù)據(jù)庫操作。因此,本申請?zhí)峁┑臄?shù)據(jù)庫操作方法還可以支持對數(shù)據(jù)庫的并行操作。本申請實(shí)施例提供的對數(shù)據(jù)庫并行操作的方法包括,根據(jù)配置文件中預(yù)先設(shè)定的與操作語句對應(yīng)的執(zhí)行方式,判斷該操作語句對應(yīng)的數(shù)據(jù)庫操作是否允許與其它數(shù)據(jù)庫操作并行執(zhí)行,在判斷結(jié)果為是,且數(shù)據(jù)庫主連接被占用時,根據(jù)該操作語句,利用創(chuàng)建的數(shù)據(jù)庫子連接,對數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作。下面將詳細(xì)描述本申請?zhí)峁┑牟⑿胁僮鲾?shù)據(jù)庫的方法的具體實(shí)現(xiàn)過程,其實(shí)現(xiàn)流程示意圖如圖5所示,包括下述步驟:步驟s501:接收針對數(shù)據(jù)庫的操作指令;步驟s502:判斷數(shù)據(jù)庫主連接是否被占用;步驟s503:如果數(shù)據(jù)庫主連接沒有被占用,則直接通過數(shù)據(jù)庫主連接執(zhí)行數(shù)據(jù)庫操作;步驟s504:如果數(shù)據(jù)庫主連接已被占用,則判斷該操作指令對應(yīng)的數(shù)據(jù)庫操作是否可并行;所謂可并行,即可以與其它數(shù)據(jù)庫操作并行執(zhí)行。在實(shí)際應(yīng)用中,某個數(shù)據(jù)庫操作是否可并行,可以由開發(fā)人員在配置文件中預(yù)先進(jìn)行設(shè)置。當(dāng)應(yīng)用運(yùn)行時,即可通過配置文件中對數(shù)據(jù)庫操作是否可并行的設(shè)置,來確定某個數(shù)據(jù)庫操作是否可以與其它操作并行執(zhí)行。具體在配置文件中設(shè)置某個數(shù)據(jù)庫操作是否可并行的方式,可以是在該數(shù)據(jù)庫操作對應(yīng)的操作語句模板所在的標(biāo)簽中,通過定義某個屬性的值,來定義該標(biāo)簽中的操作語句模板對應(yīng)的數(shù)據(jù)庫操作是否可并行。例如,定義屬性“parallel”,如果該屬性的值是“true”,則該標(biāo)簽中的操作語句模板對應(yīng)的數(shù)據(jù)庫操作可以并行,如果該屬性的值是“false”,則該標(biāo)簽中的操作語句模板對應(yīng)的數(shù)據(jù)庫操作不可以并行。需要說明的是,如果該標(biāo)簽中沒有“parallel”屬性,則默認(rèn)為該標(biāo)簽中的操作語句模板對應(yīng)的數(shù)據(jù)庫操作不可以并行。步驟s505:如果該數(shù)據(jù)庫操作不可并行,則可以等待數(shù)據(jù)庫主連接被釋放后,再利用數(shù)據(jù)庫主連接執(zhí)行數(shù)據(jù)庫操作;步驟s506:如果該數(shù)據(jù)庫操作可以并行執(zhí)行,則判斷當(dāng)前是否有空閑的數(shù)據(jù)庫子連接;本申請實(shí)施例中,數(shù)據(jù)庫子連接可以是在有需要并行執(zhí)行的數(shù)據(jù)庫操作時創(chuàng)建的,當(dāng)并行執(zhí)行的數(shù)據(jù)庫操作結(jié)束后,為了防止數(shù)據(jù)庫子連接在沒有執(zhí)行操作任務(wù)時耗費(fèi)資源,則可以在數(shù)據(jù)庫子連接空閑時,將數(shù)據(jù)庫子連接關(guān)閉。具體關(guān)閉方式可以是,定時檢測數(shù)據(jù)庫子連接的空閑時長,如果數(shù)據(jù)庫子連接的空閑時長超過了預(yù)設(shè)的時間閾值,則關(guān)閉空閑的數(shù)據(jù)庫子連接??臻e時長指數(shù)據(jù)庫子連接從結(jié)束上次操作的時刻到當(dāng)前時刻的時間長度。步驟s507:如果沒有空閑的數(shù)據(jù)庫子連接,則新建數(shù)據(jù)庫子連接,并利用新建的數(shù)據(jù)庫子連接執(zhí)行數(shù)據(jù)庫操作;對于一個以上的并發(fā)操作而言,均可以在判斷主連接被占用,以及沒有空閑的子連接時,新建數(shù)據(jù)庫子連接,并利用新建的數(shù)據(jù)庫子連接執(zhí)行數(shù)據(jù)庫操作。步驟s508:如果有空閑的數(shù)據(jù)庫子連接,則直接利用空閑的數(shù)據(jù)庫子連接執(zhí)行數(shù)據(jù)庫操作。本申請實(shí)施例中,在初始化操作完成后,執(zhí)行的數(shù)據(jù)庫操作的具體步驟,請參閱步驟s101~s103,此處不再贅述。需要說明的是,這里所說的數(shù)據(jù)庫主連接和數(shù)據(jù)庫子連接均為數(shù)據(jù)庫連接,用于為數(shù)據(jù)庫操作提供操作通道。在現(xiàn)有技術(shù)中,在實(shí)現(xiàn)數(shù)據(jù)庫接口的并發(fā)調(diào)用功能時,需要開發(fā)人員單獨(dú)為每個并發(fā)調(diào)用數(shù)據(jù)庫的實(shí)現(xiàn)邏輯編寫代碼。當(dāng)需要并發(fā)調(diào)用的操作非常多時,應(yīng)用程序的代碼量會非常大。而本申請?zhí)峁┑臄?shù)據(jù)庫接口的并發(fā)調(diào)用方法,可以動態(tài)地創(chuàng)建數(shù)據(jù)庫子連接,無需開發(fā)人員在程序源代碼中為每個并發(fā)調(diào)用的實(shí)現(xiàn)邏輯編寫代碼。那么,源代碼中的代碼數(shù)量會大大減少,進(jìn)而減少了對源代碼進(jìn)行編譯時耗費(fèi)的資源,同時減小了編譯生成的目標(biāo)程序的大小,減少了對存儲空間的占用。在實(shí)際應(yīng)用中,為了保證數(shù)據(jù)庫中數(shù)據(jù)的安全,可以對存儲到數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密。那么,在根據(jù)所述操作語句,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作前,還可以根據(jù)配置文件中預(yù)設(shè)的加密方式,判斷待存儲的數(shù)據(jù)是否需要進(jìn)行加密操作。在判定結(jié)果為是時,對待存儲的數(shù)據(jù)執(zhí)行加密操作,并根據(jù)所述操作語句,將加密后的數(shù)據(jù)存儲到所述數(shù)據(jù)庫中。下面將詳細(xì)描述本申請?zhí)峁┑臄?shù)據(jù)加密的方法的具體實(shí)現(xiàn)過程,其實(shí)現(xiàn)流程示意圖如圖6所示,包括下述步驟:步驟s601:確定包含待存儲數(shù)據(jù)的數(shù)據(jù)對象;在面向?qū)ο蟮膽?yīng)用程序中,對數(shù)據(jù)進(jìn)行接收是以接收數(shù)據(jù)對象的方式實(shí)現(xiàn)的。數(shù)據(jù)對象中的屬性的屬性值,即為待存儲的數(shù)據(jù)。步驟s602:確定該數(shù)據(jù)對象的屬性;步驟s603:判斷該屬性是否為加密屬性;在實(shí)際應(yīng)用中,可以在配置文件中,預(yù)先定義期望被加密的數(shù)據(jù)對應(yīng)的數(shù)據(jù)對象的對象名,以及該對象的屬性名。已經(jīng)在配置文件中定義的、期望被加密的數(shù)據(jù)對應(yīng)的數(shù)據(jù)對象的屬性,即為加密屬性。那么,在執(zhí)行數(shù)據(jù)存儲操作前,便可以根據(jù)配置文件的定義,確定可以對數(shù)據(jù)對象中的數(shù)據(jù)進(jìn)行加密。步驟s604:如果該屬性不是加密屬性,則將該數(shù)據(jù)對象中的數(shù)據(jù)綁定給操作語句模板,然后執(zhí)行數(shù)據(jù)存儲操作;步驟s605:如果該屬性是加密屬性,則判斷配置文件中是否定義了針對該屬性的數(shù)據(jù)的加密方式;對于不同屬性的數(shù)據(jù),對其進(jìn)行加密的加密方式可能會不同,那么,可以在配置文件中,預(yù)先定義針對某屬性的數(shù)據(jù)的加密方式。步驟s606:如果配置文件中沒有定義針對該屬性的加密方式,則使用默認(rèn)加密方式對數(shù)據(jù)執(zhí)行加密操作;所謂默認(rèn)加密方式,為預(yù)先設(shè)定的,用于對期望進(jìn)行加密,但是沒有在配置文件中定義加密方式的數(shù)據(jù)進(jìn)行加密的方式。步驟s607:如果配置文件中定義了針對該屬性的加密方式,則根據(jù)配置文件中定義的加密方式對數(shù)據(jù)執(zhí)行加密操作;步驟s608:將加密后的數(shù)據(jù)賦值給操作語句模板,并執(zhí)行數(shù)據(jù)存儲操作。當(dāng)從數(shù)據(jù)庫中獲取到加密的數(shù)據(jù)時,可以對獲取到的加密的數(shù)據(jù)進(jìn)行解密。那么當(dāng)操作語句為查找類操作語句時,在根據(jù)操作語句,對數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作后,還可以根據(jù)配置文件中預(yù)設(shè)的解密方式,判斷查找到的數(shù)據(jù)是否需要進(jìn)行解密操作,在判斷結(jié)果為是時,對查找到的數(shù)據(jù)執(zhí)行解密操作。具體數(shù)據(jù)解密過程的實(shí)現(xiàn)流程示意圖如圖7所示,包括下述步驟:步驟s701:從數(shù)據(jù)庫中讀取待賦值給數(shù)據(jù)對象的數(shù)據(jù);步驟s702:確定待賦值的數(shù)據(jù)對象的屬性;步驟s703:判斷該屬性是否為加密屬性;步驟s704:如果該屬性不是加密屬性,則將讀取到的數(shù)據(jù)賦值給待賦值的數(shù)據(jù)對象;步驟s705:如果該屬性是加密屬性,則判斷配置文件中是否定義了針對該屬性的數(shù)據(jù)解密方式;對于不同屬性的數(shù)據(jù),對其進(jìn)行解密的解密方式可能會不同,那么,可以在配置文件中,預(yù)先定義針對某屬性的數(shù)據(jù)的解密方式。步驟s706:如果配置文件中沒有定義針對該屬性的解密方式,則使用默認(rèn)解密方式對數(shù)據(jù)執(zhí)行解密操作;所謂默認(rèn)解密方式,為預(yù)先設(shè)定的,用于對期望進(jìn)行解密,但是沒有在配置文件中定義解密方式的數(shù)據(jù)進(jìn)行解密的方式。步驟s707:如果配置文件中定義了針對該屬性的解密方式,則根據(jù)配置文件中定義的解密方式對數(shù)據(jù)執(zhí)行解密操作;步驟s708:將解密后的數(shù)據(jù),賦值給數(shù)據(jù)對象。本申請實(shí)施例提供的加密方式,可以在數(shù)據(jù)庫接口中實(shí)現(xiàn),在對待加密數(shù)據(jù)進(jìn)行存儲時,無需在調(diào)用數(shù)據(jù)庫接口前自行加密;同樣在對數(shù)據(jù)庫中的加密數(shù)據(jù)進(jìn)行讀取時,無需在調(diào)用數(shù)據(jù)庫接口后自行解密,提高了對數(shù)據(jù)進(jìn)行加密或解密的效率。此外,相對于相應(yīng)技術(shù)中,在進(jìn)行加密或解密時需要使用額外的第三方數(shù)據(jù)庫的方式,減少了對資源的消耗。同時,相對于現(xiàn)有技術(shù)中對數(shù)據(jù)庫全庫加密的方式,提高了數(shù)據(jù)庫的訪問效率。本申請實(shí)施例中,通過將數(shù)據(jù)庫操作的具體實(shí)現(xiàn)保存在配置文件中,在調(diào)用數(shù)據(jù)庫接口時,動態(tài)調(diào)用配置文件中數(shù)據(jù)庫接口的實(shí)現(xiàn)方法,那么應(yīng)用程序的源代碼的量會大大減少。由于配置文件無需編譯,那么在對源代碼進(jìn)行編譯時,便減少了資源的耗費(fèi)。需要說明的是,本申請中所說的編譯,為將利用源代碼編寫的源程序轉(zhuǎn)換為計算機(jī)可執(zhí)行的目標(biāo)程序的過程。同時,對于數(shù)據(jù)庫開發(fā)人員而言,在期望修改數(shù)據(jù)庫的具體實(shí)現(xiàn)方法時,可以通過修改配置文件,來修改數(shù)據(jù)庫的具體實(shí)現(xiàn)方法。由于修改過程中沒有對程序源代碼進(jìn)行修改,無需在修改后重新編譯應(yīng)用程序源代碼,進(jìn)一步節(jié)省了資源。同時,可以對目標(biāo)程序中的數(shù)據(jù)庫接口的具體實(shí)現(xiàn)方法進(jìn)行動態(tài)修改。以上為本申請實(shí)施例提供的創(chuàng)建數(shù)據(jù)庫接口的方法和數(shù)據(jù)庫操作方法,基于同樣的思路,本申請實(shí)施例還提供相應(yīng)的創(chuàng)建數(shù)據(jù)庫接口的裝置,如圖8所示,本申請實(shí)施例還提供相應(yīng)的數(shù)據(jù)庫操作裝置,如圖9所示。圖8為本申請實(shí)施例提供的創(chuàng)建數(shù)據(jù)庫接口的裝置的結(jié)構(gòu)示意圖,具體包括:確定單元801,從預(yù)設(shè)的配置文件中確定用于創(chuàng)建數(shù)據(jù)庫接口的至少一個操作語句模板;創(chuàng)建單元802,根據(jù)所述至少一個操作語句模板,創(chuàng)建所述操作語句模板對應(yīng)的數(shù)據(jù)庫接口,所述數(shù)據(jù)庫接口用于在接收到操作指令時確定操作語句模板并根據(jù)所述操作語句模板對數(shù)據(jù)庫執(zhí)行操作。在一種實(shí)施方式中,所述創(chuàng)建單元802,針對確定的至少一個操作語句模板,執(zhí)行以下操作:確定與操作語句模板對應(yīng)的模板處理函數(shù),所述模板處理函數(shù)用于根據(jù)所述操作語句模板和實(shí)參得到操作語句;根據(jù)確定的操作語句模板,以及與該操作語句模板對應(yīng)的模板處理函數(shù),創(chuàng)建所述操作語句模板對應(yīng)的數(shù)據(jù)庫接口。在一種實(shí)施方式中,所述創(chuàng)建單元802,確定所述操作語句模板中包含的形參;根據(jù)所述操作語句模板中的形參,確定所述操作語句模板對應(yīng)的模板處理函數(shù)。圖9為本申請實(shí)施例提供的數(shù)據(jù)庫操作裝置的結(jié)構(gòu)示意圖,具體包括:接收單元901,接收針對數(shù)據(jù)庫的操作指令;確定單元902,根據(jù)預(yù)先創(chuàng)建的數(shù)據(jù)庫接口,從配置文件中確定與所述操作指令對應(yīng)的操作語句模板。所述數(shù)據(jù)庫接口,是通過本申請?zhí)峁┑膭?chuàng)建數(shù)據(jù)庫接口的方法創(chuàng)建的;獲得單元903,根據(jù)所述操作語句模板和所述操作指令中包含的實(shí)參,得到針對所述數(shù)據(jù)庫的操作語句;執(zhí)行單元904,根據(jù)所述操作語句,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作。在一種實(shí)施方式中,確定單元902,根據(jù)預(yù)先生成的數(shù)據(jù)庫接口,確定與所述操作指令對應(yīng)的模板處理函數(shù);從配置文件中確定與確定的模板處理函數(shù)對應(yīng)的操作語句模板。在一種實(shí)施方式中,獲得單元903,將所述操作指令中包含的實(shí)參,與所述操作語句模板中對應(yīng)的形參相關(guān)聯(lián),得到針對所述數(shù)據(jù)庫的操作語句。在一種實(shí)施方式中,所述裝置還包括升級單元905,在判定所述操作指令針對的數(shù)據(jù)庫的數(shù)據(jù)表需要升級時,從配置文件中確定將所述數(shù)據(jù)表從當(dāng)前版本更新至目標(biāo)版本所需執(zhí)行的升級操作;執(zhí)行所述升級操作。在一種實(shí)施方式中,所述操作語句具體包括第一操作語句和第二操作語句,其中,所述第一操作語句為數(shù)據(jù)庫操作中個性化的操作語句,所述第二操作語句為數(shù)據(jù)庫操作中必要且通用的操作語句;獲得單元903,根據(jù)所述操作語句模板和所述操作指令中包含的實(shí)參,得到針對所述數(shù)據(jù)庫的第一操作語句;執(zhí)行單元904,利用所述第一操作語句和預(yù)設(shè)的第二操作語句,執(zhí)行針對所述數(shù)據(jù)庫的數(shù)據(jù)庫操作。在一種實(shí)施方式中,所述第一操作語句包括查找類操作語句、存儲類操作語句、刪除類操作語句中的至少一種或者多種:所述第二操作語句包括以下至少一種或者多種:數(shù)據(jù)庫開啟語句;數(shù)據(jù)庫關(guān)閉語句。在一種實(shí)施方式中,所述裝置還包括加密單元906,當(dāng)所述操作語句為存儲類操作語句時,在根據(jù)所述操作語句,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作前,根據(jù)配置文件中預(yù)設(shè)的加密方式,判斷待存儲的數(shù)據(jù)是否需要進(jìn)行加密操作;執(zhí)行單元904,在判定結(jié)果為是時,對待存儲的數(shù)據(jù)執(zhí)行加密操作,并根據(jù)所述操作語句,將加密后的數(shù)據(jù)存儲到所述數(shù)據(jù)庫中。在一種實(shí)施方式中,所述裝置還包括解密單元907,當(dāng)所述操作語句為查找類操作語句時,在根據(jù)所述操作語句,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作后,根據(jù)配置文件中預(yù)設(shè)的解密方式,判斷查找到的數(shù)據(jù)是否需要進(jìn)行解密操作;在判斷結(jié)果為是時,對查找到的數(shù)據(jù)執(zhí)行解密操作。在一種實(shí)施方式中,執(zhí)行單元904,根據(jù)配置文件中預(yù)先設(shè)定的與所述操作語句對應(yīng)的執(zhí)行方式,判斷所述操作語句對應(yīng)的數(shù)據(jù)庫操作是否允許與其它數(shù)據(jù)庫操作并行執(zhí)行;在判斷結(jié)果為是,且數(shù)據(jù)庫主連接被占用時,根據(jù)所述操作語句,利用創(chuàng)建的數(shù)據(jù)庫子連接,對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作。在一種實(shí)施方式中,所述裝置還包括關(guān)閉單元908,當(dāng)檢測到所述數(shù)據(jù)庫子連接的空閑時長超過預(yù)設(shè)的時長閾值時,關(guān)閉所述數(shù)據(jù)庫子連接。在一種實(shí)施方式中,所述數(shù)據(jù)庫接口為面向?qū)ο蟮臄?shù)據(jù)庫接口。在一種實(shí)施方式中,數(shù)據(jù)對象獲得單元,當(dāng)所述數(shù)據(jù)庫操作為查找操作時,在對所述數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫操作后,利用從所述數(shù)據(jù)庫中查找到的數(shù)據(jù),得到數(shù)據(jù)對象。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計算機(jī)程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。在一個典型的配置中,計算設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計算機(jī)可讀介質(zhì)的示例。計算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲器(sram)、動態(tài)隨機(jī)存取存儲器(dram)、其他類型的隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)或計算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計算機(jī)程序產(chǎn)品的形式。以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
金湖县| 施甸县| 金川县| 拉孜县| 伊宁市| 察哈| 平和县| 米林县| 含山县| 房山区| 察雅县| 宁安市| 安宁市| 双鸭山市| 大余县| 舟山市| 南安市| 赤峰市| 永吉县| 张北县| 富蕴县| 正阳县| 太原市| 新疆| 山阴县| 济阳县| 乐安县| 张北县| 连城县| 肃北| 甘泉县| 鄢陵县| 高淳县| 达日县| 黄梅县| 洛宁县| 泸州市| 仁布县| 白沙| 恩施市| 开鲁县|