[發明專利]基于XML模板的數據庫查詢接口引擎有效
| 申請號: | 202010600923.6 | 申請日: | 2020-06-26 |
| 公開(公告)號: | CN111752542B | 公開(公告)日: | 2020-12-29 |
| 發明(設計)人: | 張路路;李耀;田駿;彭磊;楊志文 | 申請(專利權)人: | 武漢眾邦銀行股份有限公司 |
| 主分類號: | G06F8/20 | 分類號: | G06F8/20;G06F8/71;G06F16/242;G06F16/28 |
| 代理公司: | 成都正煜知識產權代理事務所(普通合伙) 51312 | 代理人: | 李龍 |
| 地址: | 432200 湖北省武漢市黃陂區盤龍城經濟開發區漢*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 xml 模板 數據庫 查詢 接口 引擎 | ||
1.一種基于XML模板的數據庫查詢接口引擎實現方法,其特征在于,包括:
XML模板配置,
所述XML模板配置包括以下步驟:
步驟A0:定義XML模板的命名規則,以.xml為后綴,名稱為查詢標識id加上”_”再加上版本號,得到模塊名稱a;
步驟A1:定義XML模板的根節點為service,其有三個屬性值,分別為:
id:查詢語句的標識;
type:查詢語句對應的關系型數據庫類型;
datasource:查詢語句對應的數據源標識,數據源是按照各個數據庫連接規則已經預置好的,這些數據庫以對象形式緩存在內存;
步驟A2:定義XML的請求參數節點request-param,該節點定義了查詢語句所支持的查詢參數,其有一個type屬性,僅支持一個值”map”,service有且僅有一個request-param節點;
步驟A3:定義XML的SQL查詢語句節點select,它代表著查詢語句的整個模塊;SQL查詢語句則按照service節點的type屬性值所代表的的數據庫規則進行編寫;
步驟A4:XML文檔的result-set是定義返回結構的節點,XML文檔有且僅有一個result-set節點,該節點有一個type屬性,代表返回的結果集類型,其值包括:
map:一種(k,v)的鍵值對結構;
array:一種(k,v)鍵值對結構的數組;
功能實現步驟:
步驟B0:定義模板引擎的調用入口功能parse,其接收到的參數為模板名稱a,構建SQL語句的參數b,b的結構為為一種k,v的鍵值對結構;
步驟B1:根據a讀取模板文件,得到其內容為doc ;
步驟B2:解析doc的request-param,驗證SQL語句的參數b的有效性;
步驟B3:解析doc的select,構建查詢語句sq;
步驟B4:獲取service節點”datasource”屬性值ds,從內置數據源映射表中獲取名為ds的數據源,執行sql語句得到執行結果sqlResult;
步驟B5:獲取result-set節點的”type”屬性值rtype,將sqlResult按照子節點entry定義的取值規則和字段類型進行處理,得到類型為type的結果returnObj;
步驟B6:將returnObj返回,至此整個調用結束。
2.根據權利要求1所述的一種基于XML模板的數據庫查詢接口引擎實現方法,其特征在于,步驟A2具體為: request-param有一個或者多個entry子節點,每個entry節點都代表著一個參數定義說明,定義的參數的名稱、類型、以及基本的校驗條件;
entry的屬性如下:
key-name:參數名稱;
key-type:參數類型,將會對代入的參數進行校驗,僅支持int、long、short、byte、float、double、bool、bigDecimal類型;
nullable:是否可以為空,代表這該參數是否必傳,默認為true,代表必傳,如非必傳,則設置為false。
3.根據權利要求1所述的一種基于XML模板的數據庫查詢接口引擎實現方法,其特征在于,步驟A3,包括以下步驟:
步驟A3.1:SQL語句的查詢條件與請求參數通過#{}插值對應,在#{}出現的地方,將被#{}中的字段值所替換,#{}中的值就是該查詢條件對應的request-param中定義的字段名;
步驟A3.2:SQL語句中的“”使用“![CADATA[]]”或者“”代替;
步驟A3.3:select節點中的if節點,代表一個判斷,判斷條件語句在屬性“test”編寫,其中:
1、test語句包括“操作數”、“比較運算符”、“邏輯運算符”、“優先級運算符” ;
2、判斷條件的比較運算符包括“”、“”、“==”、“=”、“=”、“!=”;
3、判斷條件的邏輯運算符包括“and”、“or”;
4、判斷條件的優先級運算符包括“(”、“)”;
if節點可以多級嵌套,也可以嵌套select。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢眾邦銀行股份有限公司,未經武漢眾邦銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010600923.6/1.html,轉載請聲明來源鉆瓜專利網。





