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

對(duì)象化SQL語句構(gòu)造方法及裝置與流程

文檔序號(hào):12666113閱讀:336來源:國知局
對(duì)象化SQL語句構(gòu)造方法及裝置與流程

本發(fā)明涉及信息技術(shù)領(lǐng)域,尤其涉及一種對(duì)象化SQL語句構(gòu)造方法及裝置。



背景技術(shù):

隨著信息技術(shù)的迅猛發(fā)展,大部分應(yīng)用都或多或少的基于數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的存儲(chǔ)和管理。那么這個(gè)過程必然涉及SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)操作,然而不管采用什么樣的數(shù)據(jù)訪問框架,如Hibernate(開放源代碼的對(duì)象關(guān)系映射框架)、iBatis(基于SQL映射支持Java和.NET的持久層框架)等,只要涉及復(fù)雜的SQL處理以及和性能相關(guān)的優(yōu)化,必然需要進(jìn)行定制化SQL語句的構(gòu)造。

目前,SQL語句的構(gòu)造過程都是以字符串的形式呈現(xiàn),且各種語言的編譯器都無法捕獲上述SQL語句的拼寫錯(cuò)誤,而SQL語句的拼寫錯(cuò)誤一直是SQL構(gòu)造過程中無法避免的問題,在SQL語句發(fā)生錯(cuò)誤后只有程序運(yùn)行時(shí)才可以發(fā)現(xiàn),如果業(yè)務(wù)比較復(fù)雜那么定位過程是非常耗時(shí)的,因此現(xiàn)有查找SQL錯(cuò)誤語句的效率低。



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

鑒于上述問題,提出了本發(fā)明,以便提供一種克服上述問題或者至少部分地解決上述問題的構(gòu)造對(duì)象化SQL語句方法及裝置。

為達(dá)到上述目的,本發(fā)明主要提供如下技術(shù)方案:

一方面,本發(fā)明實(shí)施例提供了一種對(duì)象化SQL語句構(gòu)造方法,該方法包括:

響應(yīng)構(gòu)造對(duì)象化SQL命令,確定第一層級(jí)的對(duì)象類模板;其中,所述第一層級(jí)的對(duì)象類模板中包含至少一個(gè)第一預(yù)置SQL對(duì)象類;

調(diào)取所述至少一個(gè)第一預(yù)置SQL對(duì)象類,確定所述至少一個(gè)第一預(yù)置 SQL對(duì)象類;

當(dāng)接收到所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),確定第二層級(jí)的對(duì)象類模板,其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的邏輯關(guān)系是根據(jù)SQL語言屬性規(guī)則確定的。

另一方面,本發(fā)明實(shí)施例還提供一種對(duì)象化SQL語句構(gòu)造裝置,該裝置包括:

響應(yīng)單元,用于響應(yīng)構(gòu)造對(duì)象化SQL命令,確定第一層級(jí)的對(duì)象類模板;其中,所述第一層級(jí)的對(duì)象類模板中包含至少一個(gè)第一預(yù)置SQL對(duì)象類;

調(diào)取單元,用于調(diào)取所述至少一個(gè)第一預(yù)置SQL對(duì)象類,確定所述至少一個(gè)第一預(yù)置SQL對(duì)象類;

確定單元,用于當(dāng)接收到所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),確定第二層級(jí)的對(duì)象類模板,其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的邏輯關(guān)系是根據(jù)SQL語言屬性規(guī)則確定的。

借由上述技術(shù)方案,本發(fā)明實(shí)施例提供的技術(shù)方案至少具有下列優(yōu)點(diǎn):

本發(fā)明實(shí)施例提供一種對(duì)象化SQL語句構(gòu)造方法及裝置,響應(yīng)構(gòu)造對(duì)象化SQL命令,確定第一層級(jí)的對(duì)象類模板;其中,所述第一層級(jí)的對(duì)象類模板中包含至少一個(gè)第一預(yù)置SQL對(duì)象類;調(diào)取所述至少一個(gè)第一預(yù)置SQL對(duì)象類,確定所述至少一個(gè)第一預(yù)置SQL對(duì)象類;當(dāng)接收到所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),確定第二層級(jí)的對(duì)象類模板,其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的邏輯關(guān)系是根據(jù)SQL語言屬性規(guī)則確定的。與目前構(gòu)造的SQL語句都是以字符串的形式表示的相比,本發(fā)明實(shí)施例通過基于對(duì)象化SQL框架快速的構(gòu)造對(duì)象化SQL語句,通過本發(fā)明構(gòu)造的SQL語句可以在語言層面規(guī)避常見的拼寫錯(cuò)誤,并且通過本發(fā)明構(gòu)造的對(duì)象化SQL語句的可維護(hù)性好,基于對(duì)象化SQL框架構(gòu)造的SQL語句相比大片的字符串SQL更有利于維護(hù)。

附圖說明

通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:

圖1為本發(fā)明實(shí)施例提供的一種對(duì)象化SQL語句構(gòu)造方法流程圖;

圖2為本發(fā)明實(shí)施例提供的另一種對(duì)象化SQL語句構(gòu)造方法流程圖;

圖3為本發(fā)明實(shí)施例提供的一種對(duì)象化SQL語句構(gòu)造裝置的結(jié)構(gòu)框圖。

具體實(shí)施方式

下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

為使本發(fā)明技術(shù)方案的優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作詳細(xì)說明。

本發(fā)明實(shí)施例提供了一種對(duì)象化SQL語句構(gòu)造方法,如圖1所示,所述方法包括:

S101、響應(yīng)構(gòu)造對(duì)象化SQL命令,確定第一層級(jí)的對(duì)象類模板。

其中,所述第一層級(jí)的對(duì)象類模板中包含多個(gè)第一預(yù)置SQL對(duì)象類,所述第一預(yù)置SQL對(duì)象類是根據(jù)SQL語言的規(guī)則預(yù)先配置的,第一預(yù)置SQL對(duì)象類具體可以根據(jù)SQL語言中的首個(gè)操作命令編寫的,所述SQL語言中首個(gè)操作命令具體可以為SELECT、DELETE、UPDATE、CREATE、INSERT、DROP等,本發(fā)明實(shí)施例不做具體限定。

在本發(fā)明實(shí)施例中,所述構(gòu)造對(duì)象化SQL命令具體可以通過程序編輯界面中輸入構(gòu)造對(duì)象化SQL命令,就可以實(shí)現(xiàn)輸出第一層級(jí)的對(duì)象類模板, 其中第一層級(jí)的對(duì)象模板中包含有多個(gè)第一預(yù)置SQL類,如SELECT類、DELETE類和UPDATE類等,本發(fā)明實(shí)施例不做具體限定。

需要說明的是,對(duì)象化SQL語句中的SQL對(duì)象類是預(yù)先編輯好的,在本發(fā)明實(shí)施例中可以通過SQL語法進(jìn)行分類,將SQL語句分成以下幾種形式:SQL子句(Select、Where、Joint、GroupBy等等)、運(yùn)算符、表達(dá)式、函數(shù)、SQL語句、謂詞、表運(yùn)算和集合運(yùn)算等,本發(fā)明實(shí)施例不做具體限定,然后創(chuàng)建這些對(duì)象的類,從而使得用戶輸入對(duì)象后SQL語句時(shí),可以直接調(diào)用這些類,然后在這些類中填寫相應(yīng)的參數(shù),即可完成對(duì)象化SQL語句的構(gòu)造。

S102、調(diào)取所述至少一個(gè)第一預(yù)置SQL對(duì)象類,確定所述至少一個(gè)第一預(yù)置SQL對(duì)象類。

在本發(fā)明實(shí)施例中,當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),調(diào)取并確定第一預(yù)置SQL對(duì)象類,然后顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類。需要說明的是,可以接收客戶端選擇的一個(gè)或多個(gè)SQL對(duì)象類,如SELECT類、DELETE類和UPDATE類等,本發(fā)明實(shí)施例不做具體限定。

例如,接收到客戶端選擇的第一預(yù)置SQL對(duì)象類為SELECT類,則顯示出SELECT類具體如下所示:

SqlSession sesstion=new SqlSession(config);

ISqlExpression sqlExpression=

sesstion.Select(Metadata_Column_PERSON_AGE)

需要說明的是,本例中的SELECT類中的PERSON_AGE是用戶端輸入的具體表名和字段名。

S103、當(dāng)接收到第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),確定第二層級(jí)的對(duì)象類模板。

其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的邏輯關(guān)系是根據(jù)SQL語言屬性規(guī)則確定的。

具體地,對(duì)于上述中第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類 的邏輯關(guān)系,可以是基于SQL語言本身邏輯順序來確定的,例如,SQL語言執(zhí)行格式、數(shù)據(jù)對(duì)象優(yōu)先級(jí)設(shè)置等。

對(duì)于本發(fā)明實(shí)施例,所述參數(shù)主要是描述數(shù)據(jù)屬性的信息,具體可以為字段信息對(duì)象和表對(duì)象;所述參數(shù)還可以是SQL條件設(shè)置參數(shù)、具體設(shè)置數(shù)值參數(shù)等,本發(fā)明實(shí)施例不做具體限定。

例如,可以通過下述對(duì)象化SQL語句表示常規(guī)拼寫的SQL語句“SELECT age FROM Person Where age<16”:

SqlSession sesstion=new SqlSession(config);

ISqlExpression sqlExpression=

sesstion.Select(Metadata_Column_PERSON_AGE)

.From(Metadata_Table_PERSON)

.Where(new Predicate(Metadata_Column_PERSON_AGE

,Operators.LessThan,16));

從本例中可以看出,上述對(duì)象化SQL語句可以實(shí)現(xiàn)常規(guī)拼寫SQL語句“SELECT age FROM Person Where age<16”的功能,即從Person表中查找年齡小于16的年齡字段信息,對(duì)象化SQL語句通過編程語言中的類進(jìn)行編寫常規(guī)SQL語句的,而且編寫的對(duì)象化構(gòu)造對(duì)象化SQL語句嚴(yán)格按照SQL語法進(jìn)行,與日常拼寫SQL的邏輯一致。

在本發(fā)明實(shí)施例中,由于是通過類的方式實(shí)現(xiàn)SQL語句的編寫,因此在編寫SQL語句時(shí),可以有效的利用系統(tǒng)的編譯器對(duì)常規(guī)的拼寫錯(cuò)誤進(jìn)行檢查,在編寫過程中一旦發(fā)生SQL拼寫錯(cuò)誤,系統(tǒng)將會(huì)自動(dòng)報(bào)錯(cuò),因此通過本發(fā)明可以從根本上消除基于字符串的SQL拼寫錯(cuò)誤的問題。

本發(fā)明實(shí)施例提供一種構(gòu)造對(duì)象化SQL語句方法,響應(yīng)構(gòu)造對(duì)象化SQL命令,確定第一層級(jí)的對(duì)象類模板;其中,所述第一層級(jí)的對(duì)象類模板中包含至少一個(gè)第一預(yù)置SQL對(duì)象類;調(diào)取所述至少一個(gè)第一預(yù)置SQL對(duì)象類,確定所述至少一個(gè)第一預(yù)置SQL對(duì)象類;當(dāng)接收到所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),確定第二層級(jí)的對(duì)象類模板,其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的邏輯關(guān)系是根據(jù)SQL語言屬性規(guī)則確定 的。與目前構(gòu)造的SQL語句都是以字符串的形式表示的相比,本發(fā)明實(shí)施例通過基于對(duì)象化SQL框架快速的構(gòu)造對(duì)象化SQL語句,通過本發(fā)明構(gòu)造的SQL語句可以在語言層面規(guī)避常見的拼寫錯(cuò)誤,并且通過本發(fā)明構(gòu)造的對(duì)象化SQL語句的可維護(hù)性好,基于對(duì)象化SQL框架構(gòu)造的SQL語句相比大片的字符串SQL更有利于維護(hù)。

本發(fā)明實(shí)施例提供了另一種對(duì)象化SQL語句構(gòu)造方法,如圖2所示,所述方法包括:

S201、配置SQL中各個(gè)詞語分別對(duì)應(yīng)的SQL對(duì)象類。

其中,SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)中的各個(gè)詞語即為SQL中組成的語句,SQL中組成的語句具體可也為Select、Where、Joint、GroupBy、update等操作命令,也可以為SQL語句中的一些運(yùn)算符以及表達(dá)式,還可以是一些函數(shù)、謂詞、表運(yùn)算和集合運(yùn)算等,本發(fā)明實(shí)施例不做具體限定。

對(duì)于本發(fā)明實(shí)施例,所述配置SQL中各個(gè)詞語分別對(duì)應(yīng)的SQL對(duì)象類之前,所述方法還包括:按照所述SQL中的語法規(guī)則順序,對(duì)所述SQL中的詞語進(jìn)行劃分層級(jí),其中,每一層級(jí)中至少包括一個(gè)詞語,從高到低的層級(jí)之間的SQL詞語順序關(guān)系符合SQL語言本身的邏輯順序;所述配置SQL中各個(gè)詞語分別對(duì)應(yīng)的SQL對(duì)象類包括:配置SQL中同一層級(jí)中的詞語分別對(duì)應(yīng)的SQL對(duì)象類;為同一層級(jí)的SQL對(duì)象類配置對(duì)應(yīng)的對(duì)象類模板。

S202、當(dāng)接收到客戶端輸入的構(gòu)造對(duì)象化SQL命令時(shí),輸出第一層級(jí)的對(duì)象類模板。

其中,所述第一層級(jí)的對(duì)象類模板中包含多個(gè)第一預(yù)置SQL對(duì)象類,所述第一預(yù)置SQL對(duì)象類是根據(jù)SQL語言的規(guī)則預(yù)先配置的,第一預(yù)置SQL對(duì)象類具體可以根據(jù)SQL語言中的首個(gè)操作命令編寫的,所述SQL語言中首個(gè)操作命令具體可以為SELECT、DELETE、UPDATE、CREATE、INSERT、DROP等,本發(fā)明實(shí)施例不做具體限定。

在本發(fā)明實(shí)施例中,所述構(gòu)造對(duì)象化SQL命令具體可以通過程序編輯界面中輸入構(gòu)造對(duì)象化SQL命令,就可以實(shí)現(xiàn)輸出第一層級(jí)的對(duì)象類模板, 其中第一層級(jí)的對(duì)象模板中包含有多個(gè)第一預(yù)置SQL類,如選擇類SELECT、刪除類DELETE和更新類UPDATE等,本發(fā)明實(shí)施例不做具體限定。

需要說明的是,對(duì)象化SQL語句中的SQL對(duì)象類是預(yù)先編輯好的,在本發(fā)明實(shí)施例中可以通過SQL語法進(jìn)行分類,將SQL語句分成以下幾種形式:SQL子句(Select、Where、Joint、GroupBy等等)、運(yùn)算符、表達(dá)式、函數(shù)、SQL語句、謂詞、表運(yùn)算和集合運(yùn)算等,本發(fā)明實(shí)施例不做具體限定,然后創(chuàng)建這些對(duì)象的類,從而使得用戶輸入對(duì)象后SQL語句時(shí),可以直接調(diào)用這些類,然后在這些類中填寫相應(yīng)的參數(shù),即可完成對(duì)象化SQL語句的輸入。

S203、當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類。

在本發(fā)明實(shí)施例中,當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類。需要說明的是,可以接收客戶端選擇的一個(gè)或多個(gè)SQL對(duì)象類,如SELECT類、DELETE類和UPDATE類等,本發(fā)明實(shí)施例不做具體限定。

在本發(fā)明實(shí)施例中,由于是通過對(duì)象類的方式實(shí)現(xiàn)SQL語句的編寫,因此在編寫SQL語句時(shí),可以有效的利用系統(tǒng)的編譯器對(duì)常規(guī)的拼寫錯(cuò)誤進(jìn)行檢查,在編寫過程中一旦發(fā)生SQL拼寫錯(cuò)誤,系統(tǒng)將會(huì)自動(dòng)報(bào)錯(cuò),因此通過本發(fā)明可以從根本上消除基于字符串的SQL拼寫錯(cuò)誤的問題。

S204、當(dāng)接收到客戶端輸入的與所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),則輸出第二層級(jí)的對(duì)象類模板。

其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,需要說明的是,本法實(shí)施例構(gòu)造的對(duì)象化的SQL語句嚴(yán)格按照SQL語法進(jìn)行,且與日常拼寫SQL的邏輯一致,因此通過對(duì)象化的SQL語句表示現(xiàn)有的字符串的SQL語句,可以有效的利用系統(tǒng)中的編譯器檢測出對(duì)象化的SQL語句中的拼寫錯(cuò)誤,從而可從根本上消除基于字符串的SQL拼寫錯(cuò)誤的問題,進(jìn)而通過本發(fā)明可以提高查找SQL錯(cuò)誤語句的效率。

對(duì)于本發(fā)明實(shí)施例,所述參數(shù)主要是描述數(shù)據(jù)屬性的信息,具體可以 為字段信息對(duì)象和表對(duì)象;所述參數(shù)還可以是SQL條件設(shè)置參數(shù)、具體設(shè)置數(shù)值參數(shù)等,本發(fā)明實(shí)施例不做具體限定。

S205、判斷是否能夠?qū)⑺龅谝活A(yù)置SQL對(duì)象類和所述第二預(yù)置SQL對(duì)象類轉(zhuǎn)換成SQL語句。

在本發(fā)明實(shí)施例中,若否能夠?qū)⑺龅谝活A(yù)置SQL對(duì)象類和所述第二預(yù)置SQL對(duì)象類轉(zhuǎn)換成SQL語句,則說明構(gòu)造的對(duì)象化SQL語句不存在拼寫錯(cuò)誤。其中,可以通過系統(tǒng)中的構(gòu)造器將所述對(duì)象化SQL語句轉(zhuǎn)換成SQL語句,需要說明的是,本發(fā)明中的構(gòu)造器本身不同于市面上智能化的解析構(gòu)造裝置,它只負(fù)責(zé)將指定的SQL對(duì)象按照用戶組織的順序翻譯成標(biāo)準(zhǔn)的或是適用于某一款特定的數(shù)據(jù)庫的SQL語句。

例如:謂詞中的比較謂詞對(duì)象化SQL語句的描述如下:

sesstion.Where(

new ComparisonPredicate

(Metedata_Comlumn_PERSON_AGE,Operators.NotEqual,16))

將上述對(duì)象化SQL語句進(jìn)行翻譯,翻譯的具體結(jié)果為Where age<>16。

需要說明的是,不同于ORM(Object Relational Mapping,對(duì)象關(guān)系映射),本發(fā)明可以根據(jù)接收到的對(duì)象化SQL語句關(guān)系來自動(dòng)推斷用戶想要表達(dá)的SQL語句,SQL語句的構(gòu)造完全取決于用戶輸入的對(duì)象化SQL語句,一個(gè)資深的SQL領(lǐng)域的程序員可以完全使用這種對(duì)象化的SQL類寫出基于SQL語言本身所能描述的SQL語句;而一個(gè)初次涉獵SQL的程序員則可以寫出錯(cuò)誤的邏輯表達(dá),這都完全允許的,支持在運(yùn)行時(shí)會(huì)產(chǎn)生錯(cuò)誤而已。另外,本發(fā)明通過提供一個(gè)標(biāo)準(zhǔn)的ISqlBuilder接口契約,配合ISqlProvider標(biāo)準(zhǔn)接口,可以對(duì)特定數(shù)據(jù)庫進(jìn)行支持。

S206a、若不能,則輸出SQL語法錯(cuò)誤提示信息。

在本發(fā)明實(shí)施例中,若不能夠?qū)⑺龅谝活A(yù)置SQL對(duì)象類和所述第二預(yù)置SQL對(duì)象類轉(zhuǎn)換成SQL語句,則輸出SQL語法錯(cuò)誤提示信息。本發(fā)明通過系統(tǒng)內(nèi)部的SQL構(gòu)造器,在運(yùn)行時(shí)對(duì)SQL語句進(jìn)行語法檢查,從而可以快速的定位錯(cuò)誤。

S206b、若能,則執(zhí)行所述SQL語句。

其中,步驟S206b為步驟S206a的并列步驟,若能夠?qū)⑺龅谝活A(yù)置SQL對(duì)象類和所述第二預(yù)置SQL對(duì)象類轉(zhuǎn)換成SQL語句,則執(zhí)行所述SQL語句。

S207b、記錄執(zhí)行錯(cuò)誤的SQL語句。

在本發(fā)明實(shí)施例中,在執(zhí)行所述SQL語句時(shí),可以通過映射器讓系統(tǒng)知道需要將對(duì)應(yīng)查詢的字段如何轉(zhuǎn)換為所要查詢的實(shí)體的屬性,系統(tǒng)會(huì)對(duì)每次SQL的執(zhí)行進(jìn)行性能的統(tǒng)計(jì),然后記錄執(zhí)行錯(cuò)誤的SQL語句,以便于后續(xù)的優(yōu)化。同時(shí)也會(huì)對(duì)象錯(cuò)誤的SQL執(zhí)行過程進(jìn)行跟蹤,便于問題的排查。

本發(fā)明實(shí)施例提供另一種對(duì)象化SQL語句構(gòu)造方法,當(dāng)接收到客戶端輸入的構(gòu)造對(duì)象化SQL命令時(shí),輸出第一層級(jí)的對(duì)象類模板,所述第一層級(jí)的對(duì)象類模板中包含多個(gè)第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端輸入的與所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),則輸出第二層級(jí)的對(duì)象類模板,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,其中,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的順序關(guān)系符合SQL語言本身的邏輯順序。與目前構(gòu)造的SQL語句都是以字符串的形式表示的相比,本發(fā)明實(shí)施例通過基于對(duì)象化SQL框架快速的構(gòu)造對(duì)象化SQL語句,通過本發(fā)明構(gòu)造的SQL語句可以在語言層面規(guī)避常見的拼寫錯(cuò)誤,并且通過本發(fā)明構(gòu)造的對(duì)象化SQL語句的可維護(hù)性好,基于對(duì)象化SQL框架構(gòu)造的SQL語句相比大片的字符串SQL更有利于維護(hù)。

進(jìn)一步地,本發(fā)明實(shí)施例提供一種對(duì)象化SQL語句構(gòu)造裝置,如圖3所示,所述裝置包括:響應(yīng)單元31、調(diào)取單元32和確定單元33。

響應(yīng)單元31,用于響應(yīng)構(gòu)造對(duì)象化SQL命令,確定第一層級(jí)的對(duì)象類模板;其中,所述第一層級(jí)的對(duì)象類模板中包含至少一個(gè)第一預(yù)置SQL對(duì)象類。

調(diào)取單元32,用于調(diào)取所述至少一個(gè)第一預(yù)置SQL對(duì)象類,確定所述至少一個(gè)第一預(yù)置SQL對(duì)象類。

確定單元33,用于當(dāng)接收到所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí), 確定第二層級(jí)的對(duì)象類模板,其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的邏輯關(guān)系是根據(jù)SQL語言屬性規(guī)則確定的。

需要說明的是,本發(fā)明實(shí)施例提供的一種對(duì)象化SQL語句構(gòu)造裝置所涉及各功能單元的其他相應(yīng)描述,可以參考圖1所示方法的對(duì)應(yīng)描述,在此不再贅述,但應(yīng)當(dāng)明確,本實(shí)施例中的裝置能夠?qū)?yīng)實(shí)現(xiàn)前述方法實(shí)施例中的全部內(nèi)容。

本發(fā)明實(shí)施例提供一種對(duì)象化SQL語句構(gòu)造裝置,當(dāng)接收到客戶端輸入的構(gòu)造對(duì)象化SQL命令時(shí),輸出第一層級(jí)的對(duì)象類模板,所述第一層級(jí)的對(duì)象類模板中包含多個(gè)第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端輸入的與所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),則輸出第二層級(jí)的對(duì)象類模板,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,其中,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的順序關(guān)系符合SQL語言本身的邏輯順序。與目前構(gòu)造的SQL語句都是以字符串的形式表示的相比,本發(fā)明實(shí)施例通過基于對(duì)象化SQL框架快速的構(gòu)造對(duì)象化SQL語句,通過本發(fā)明構(gòu)造的SQL語句可以在語言層面規(guī)避常見的拼寫錯(cuò)誤,并且通過本發(fā)明構(gòu)造的對(duì)象化SQL語句的可維護(hù)性好,基于對(duì)象化SQL框架構(gòu)造的SQL語句相比大片的字符串SQL更有利于維護(hù)。

進(jìn)一步地,本發(fā)明實(shí)施例提供另一種對(duì)象化SQL語句構(gòu)造裝置,具體如下:

輸出單元,用于當(dāng)接收到客戶端輸入的構(gòu)造對(duì)象化SQL命令時(shí),輸出第一層級(jí)的對(duì)象類模板,所述第一層級(jí)的對(duì)象類模板中包含至少一個(gè)第一預(yù)置SQL對(duì)象類。

顯示單元,用于當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類。

所述輸出單元,還用于當(dāng)接收到客戶端輸入的與所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),則輸出第二層級(jí)的對(duì)象類模板,其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類 與所述第二預(yù)置SQL對(duì)象類的順序關(guān)系符合SQL語言本身的邏輯順序。

進(jìn)一步地,所述裝置還包括:

配置單元,用于配置所述SQL中各個(gè)詞語分別對(duì)應(yīng)的SQL對(duì)象類。

進(jìn)一步地所述裝置還包括:劃分單元。

所述劃分單元,用于按照所述SQL中的語法規(guī)則順序,對(duì)所述SQL中的詞語進(jìn)行劃分層級(jí),其中,每一層級(jí)中至少包括一個(gè)詞語,從高到低的層級(jí)之間的SQL詞語順序關(guān)系符合SQL語言本身的邏輯順序。

所述配置單元,具體用于配置SQL中同一層級(jí)中的詞語分別對(duì)應(yīng)的SQL對(duì)象類。

所述配置單元,具體還用于為同一層級(jí)的SQL對(duì)象類配置對(duì)應(yīng)的對(duì)象類模板。

進(jìn)一步地,所述裝置還包括:

所述判斷單元,用于判斷是否能夠?qū)⑺龅谝活A(yù)置SQL對(duì)象類和所述第二預(yù)置SQL對(duì)象類轉(zhuǎn)換成SQL語句。

所述輸出單元,還用于若不能將所述第一預(yù)置SQL對(duì)象類和所述第二預(yù)置SQL對(duì)象類轉(zhuǎn)換成SQL語句,輸出SQL邏輯錯(cuò)誤提示信息。

進(jìn)一步地,所述裝置還包括:

執(zhí)行單元,若能夠?qū)⑺龅谝活A(yù)置SQL對(duì)象類和所述第二預(yù)置SQL對(duì)象類轉(zhuǎn)換成SQL語句,則執(zhí)行所述SQL語句。

記錄單元,用于記錄執(zhí)行錯(cuò)誤的SQL語句。

需要說明的是,本發(fā)明實(shí)施例提供的一種對(duì)象化SQL語句構(gòu)造裝置所涉及各功能單元的其他相應(yīng)描述,可以參考圖2所示方法的對(duì)應(yīng)描述,在此不再贅述,但應(yīng)當(dāng)明確,本實(shí)施例中的裝置能夠?qū)?yīng)實(shí)現(xiàn)前述方法實(shí)施例中的全部內(nèi)容。

本發(fā)明實(shí)施例提供一種對(duì)象化SQL語句構(gòu)造裝置,當(dāng)接收到客戶端輸入的構(gòu)造對(duì)象化SQL命令時(shí),輸出第一層級(jí)的對(duì)象類模板,所述第一層級(jí)的對(duì)象類模板中包含多個(gè)第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端輸入的與所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),則輸出第二 層級(jí)的對(duì)象類模板,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,其中,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的順序關(guān)系符合SQL語言本身的邏輯順序。與目前構(gòu)造的SQL語句都是以字符串的形式表示的相比,本發(fā)明實(shí)施例通過基于對(duì)象化SQL框架快速的構(gòu)造對(duì)象化SQL語句,通過本發(fā)明構(gòu)造的SQL語句可以在語言層面規(guī)避常見的拼寫錯(cuò)誤,并且通過本發(fā)明構(gòu)造的對(duì)象化SQL語句的可維護(hù)性好,基于對(duì)象化SQL框架構(gòu)造的SQL語句相比大片的字符串SQL更有利于維護(hù)。

所述對(duì)象化SQL語句構(gòu)造裝置包括處理器和存儲(chǔ)器,上述輸出單元、配置單元、顯示單元、劃分單元、判斷單元、執(zhí)行單元和記錄單元等均作為程序單元存儲(chǔ)在存儲(chǔ)器中,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的上述程序單元來實(shí)現(xiàn)相應(yīng)的功能。

處理器中包含內(nèi)核,由內(nèi)核去存儲(chǔ)器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個(gè)或以上,通過調(diào)整內(nèi)核參數(shù)來提高查找SQL錯(cuò)誤語句的效率。

存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM),存儲(chǔ)器包括至少一個(gè)存儲(chǔ)芯片。

本申請(qǐng)還提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時(shí),適于執(zhí)行初始化有如下方法步驟的程序代碼:當(dāng)接收到客戶端輸入的構(gòu)造對(duì)象化SQL命令時(shí),輸出第一層級(jí)的對(duì)象類模板,所述第一層級(jí)的對(duì)象類模板中包含多個(gè)第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端選擇的第一預(yù)置SQL對(duì)象類時(shí),顯示所述客戶端選擇的第一預(yù)置SQL對(duì)象類;當(dāng)接收到客戶端輸入的與所述第一預(yù)置SQL對(duì)象類對(duì)應(yīng)的參數(shù)時(shí),則輸出第二層級(jí)的對(duì)象類模板,其中,所述第二層級(jí)的對(duì)象類模板中至少包含一個(gè)第二預(yù)置SQL對(duì)象類,第一預(yù)置SQL對(duì)象類與所述第二預(yù)置SQL對(duì)象類的順序關(guān)系符合SQL語言本身的邏輯順序。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不 限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。

存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。存儲(chǔ)器是計(jì)算機(jī)可讀介質(zhì)的示例。

計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可 擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。

以上僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來說,本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
曲麻莱县| 洛浦县| 闻喜县| 井冈山市| 东丰县| 抚顺市| 库车县| 临潭县| 西藏| 凤翔县| 宁海县| 长垣县| 江安县| 建阳市| 磴口县| 汉源县| 怀安县| 尉犁县| 承德县| 鲁甸县| 武乡县| 米泉市| 山东省| 四子王旗| 江山市| 建昌县| 宝兴县| 青铜峡市| 隆子县| 鄂州市| 绥宁县| 德昌县| 麻栗坡县| 玉田县| 同心县| 奈曼旗| 思南县| 阳曲县| 宁河县| 汾西县| 天等县|