本申請涉及數(shù)據(jù)處理,尤其涉及一種sql查詢方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、相關(guān)的sql查詢過程中,首先由用戶給出需求,需求中包含待查詢的字段以及對該字段進(jìn)行查詢的查詢條件,開發(fā)人員針對該需求編寫對應(yīng)查詢代碼,當(dāng)用戶的需求變動時,需要開發(fā)人員對已有的代碼進(jìn)行改動,上述過程存在以下問題:
2、1、代碼機械重復(fù):很多字段對應(yīng)的查詢條件是簡單字段匹配,例如匹配性別字段為“男性”的數(shù)據(jù)、匹配學(xué)歷字段為“本科”的數(shù)據(jù),這在查詢這類字段所使用的代碼非常相似,導(dǎo)致代碼重復(fù)堆砌,開發(fā)效率低。
3、2、后期維護(hù)性差:當(dāng)用戶的需求變更時,涉及改動的代碼較多,例如查詢創(chuàng)建日期的條件,由指定日期,改為查詢范圍日期,則幾乎相關(guān)代碼從頂至下都需要改動,維護(hù)代價大。
4、3、缺少對已有代碼信息的利用:java中綁定數(shù)據(jù)庫字段和實體的類文件,已經(jīng)包含了java字段和數(shù)據(jù)庫字段的映射關(guān)系,例如userid綁定到數(shù)據(jù)庫字段user_id,然而現(xiàn)有的查詢代碼實現(xiàn)方式,需要判斷條件名稱為“userid”時,通過代碼人為指定此查詢條件轉(zhuǎn)化為數(shù)據(jù)庫“user_id”的查詢sql片段,重復(fù)判斷了字段映射關(guān)系,存在拼寫出錯的可能,容易導(dǎo)致bug。
5、面對上述問題,現(xiàn)有的業(yè)務(wù)背景下,如何緩解代碼堆砌問題,提高后期可維護(hù)性,如何充分利用已有基礎(chǔ)代碼,減少冗余信息及降低代碼出錯率的是一個挑戰(zhàn)性問題。
技術(shù)實現(xiàn)思路
1、本申請?zhí)峁┝艘环Nsql查詢方法、裝置、設(shè)備及介質(zhì),用以解決現(xiàn)有技術(shù)在基于sql語句進(jìn)行查詢時,代碼堆砌、效率低以及代碼易出錯的問題。
2、第一方面,本申請實施例提供了一種sql查詢方法,所述方法包括:
3、根據(jù)保存的字段與查詢模式的映射關(guān)系,確定查詢請求中攜帶的目標(biāo)字段對應(yīng)的目標(biāo)查詢模式;
4、根據(jù)保存的所述目標(biāo)查詢模式對應(yīng)的代碼以及所述查詢請求中攜帶的目標(biāo)值,進(jìn)行sql查詢。
5、第二方面,本申請實施例還提供了一種sql查詢裝置,所述裝置包括:
6、處理模塊,用于根據(jù)保存的字段與查詢模式的映射關(guān)系,確定查詢請求中攜帶的目標(biāo)字段對應(yīng)的目標(biāo)查詢模式;
7、查詢模塊,用于根據(jù)保存的所述目標(biāo)查詢模式對應(yīng)的代碼以及所述查詢請求中攜帶的目標(biāo)值,進(jìn)行sql查詢。
8、第三方面,本申請實施例提供了一種電子設(shè)備,所述電子設(shè)備包括處理器,所述處理器用于執(zhí)行存儲器中存儲的計算機程序時實現(xiàn)如上述任一所述sql查詢方法的步驟。
9、第四方面,本申請實施例提供了一種計算機可讀存儲介質(zhì),其存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一所述sql查詢方法的步驟。
10、在本申請實施例中,電子設(shè)備根據(jù)保存的字段與查詢模式的映射關(guān)系,確定查詢請求中攜帶的目標(biāo)字段對應(yīng)的目標(biāo)查詢模式;根據(jù)保存的目標(biāo)查詢模式對應(yīng)的代碼以及查詢請求中攜帶的目標(biāo)值,進(jìn)行sql查詢。在本申請實施例中,電子設(shè)備中預(yù)先保存有字段與查詢模式的映射,同一類型的字段對應(yīng)的同一種查詢模式,并保存有每種查詢模式對應(yīng)的代碼,使得電子設(shè)備中保存的代碼量大大減少,避免代碼堆砌同時降低了代碼的出錯率。電子設(shè)備在進(jìn)行sql查詢時,直接根據(jù)查詢請求中攜帶的目標(biāo)字段對應(yīng)的目標(biāo)查詢模式對應(yīng)的代碼以及查詢請求中攜帶的目標(biāo)值,進(jìn)行sql查詢,提高了sql查詢的效率。
1.一種sql查詢方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)保存的字段與查詢模式的映射關(guān)系,確定查詢請求中攜帶的目標(biāo)字段對應(yīng)的目標(biāo)查詢模式:
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述查詢模式包括:匹配查詢模式、自定義查詢模式、相似查詢模式、聯(lián)表查詢模式和范圍查詢模式。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)保存的所述目標(biāo)查詢模式對應(yīng)的代碼以及所述查詢請求中攜帶的目標(biāo)值,進(jìn)行sql查詢包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)保存的所述目標(biāo)查詢模式對應(yīng)的代碼以及所述查詢請求中攜帶的目標(biāo)值,進(jìn)行sql查詢包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述基于所述目標(biāo)查詢條件,進(jìn)行sql查詢之前,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)的轉(zhuǎn)換規(guī)則,將所述目標(biāo)查詢條件轉(zhuǎn)換為目標(biāo)查詢語句包括:
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述將所述目標(biāo)查詢條件附加到預(yù)設(shè)的choose語句中之前,所述方法還包括:
9.一種sql查詢裝置,其特征在于,所述裝置包括:
10.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括處理器,所述處理器用于執(zhí)行存儲器中存儲的計算機程序時實現(xiàn)如權(quán)利要求1-8任一所述sql查詢方法的步驟。
11.一種計算機可讀存儲介質(zhì),其特征在于,其存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-8中任一所述sql查詢方法的步驟。