• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于JSON格式的自定義組合條件查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)

      2014-10-21 11:09:39封侶
      電子世界 2014年12期
      關(guān)鍵詞:組合條件

      【摘要】查詢模塊在軟件系統(tǒng)的開發(fā)中屬于基本的必需模塊,條件與對(duì)象屬性相對(duì)應(yīng),而對(duì)象屬性與表字段相對(duì)應(yīng),前臺(tái)條件以And或者Or組裝成JSON格式的數(shù)據(jù),后臺(tái)接受來自于前臺(tái)的JSON數(shù)據(jù)進(jìn)行一系列處理最終拼接為Hql字符串進(jìn)而查詢出滿足條件的數(shù)據(jù)返回給前臺(tái)展示。前臺(tái)的查詢條件組裝成JSON格式數(shù)據(jù)借助于ligerui的ligerFilter插件,后臺(tái)借助java代碼對(duì)JSON格式數(shù)據(jù)進(jìn)行處理。由于對(duì)象屬性字段與數(shù)據(jù)表字段的對(duì)應(yīng)采用了Hibernate映射框架,故在程序中對(duì)實(shí)體對(duì)象的操作相當(dāng)于對(duì)數(shù)據(jù)庫表的操作,這樣簡化了后臺(tái)查詢代碼的編寫工作,并且使得查詢代碼易于維護(hù)。

      【關(guān)鍵詞】組合;條件;查詢;JSON;ligerui;ligerFilter;Hibernate;

      引言

      在如今的企業(yè)生產(chǎn)運(yùn)行中,信息管理系統(tǒng)扮演著重要的作用,不但可以提高企業(yè)人員的工作效率,而且還能為企業(yè)降本增效,為企業(yè)創(chuàng)造更多的價(jià)值。企業(yè)的工作離不開信息管理系統(tǒng),而查詢模塊是每一個(gè)信息管理系統(tǒng)中必不可少的模塊。由于信息量的不斷膨脹,數(shù)據(jù)記錄在數(shù)據(jù)庫中存儲(chǔ)越來越多,對(duì)于特定記錄的獲取,通過一個(gè)條件往往無法進(jìn)行準(zhǔn)確定位,常常需要2個(gè)以上查詢條件的組合來篩選滿足條件的數(shù)據(jù)記錄[1]。因此查詢功能設(shè)計(jì)的好壞直接關(guān)系到信息管理系統(tǒng)效率的大小以及人機(jī)結(jié)合密切關(guān)系的程度,而且將在很大程度上影響系統(tǒng)的可維護(hù)性和可修改性[2]。

      查詢模塊如此重要,對(duì)它的設(shè)計(jì)當(dāng)然需要有合理性、科學(xué)性、易用性、易擴(kuò)展等特點(diǎn),并且能滿足我們?nèi)粘5母鞣N查詢需求。鑒于此,借助于基于Jquery的前端UI控件組合ligerui的ligerFilter插件進(jìn)行自定義組合條件查詢的開發(fā)將使得我們的查詢模塊更具有靈活性。

      1.自定義組合條件查詢模塊設(shè)計(jì)思想

      在傳統(tǒng)信息管理系統(tǒng)的查詢模塊中,查詢頁面一般包括查詢字段名字以及與其對(duì)應(yīng)的輸入框,一般情況下,此輸入框要么由用戶手工輸入,要么以下拉框形式由用戶選擇,并且頁面字段,后臺(tái)代碼基本都是根據(jù)最初需求已經(jīng)固化了。比如客戶最先需求只是由F1、F2字段組成的查詢功能,我們根據(jù)用戶需求完成了查詢頁面P1的設(shè)計(jì),但是隨著公司業(yè)務(wù)的發(fā)展,客戶有了新的查詢需求,在原有查詢字段基礎(chǔ)上再增加1,2,3…n個(gè)字段。此刻你會(huì)怎么做?修改P1頁面字段及其對(duì)應(yīng)的后臺(tái)查詢代碼嗎?當(dāng)頁面較少時(shí)或許我們能忍受這樣的重復(fù)工作,但是當(dāng)頁面較多時(shí),需求一變,不斷的修改查詢頁面以及后臺(tái)代碼是很多開發(fā)工程師所不能忍受的。

      為了避免如此笨拙的查詢模塊設(shè)計(jì)出現(xiàn)在系統(tǒng)中,將借助于UI控件ligerui的ligerFilter插件設(shè)計(jì)出自定義組合條件查詢模塊。以被查詢對(duì)象User的字段為數(shù)據(jù)源生成下拉框(比如姓名、年齡),根據(jù)字段類型(字符串型、數(shù)字型)生成操作符下拉框(比如相等、大于)和條件輸入框(比如字符串輸入框、數(shù)字輸入框),這些條件可以單純的and、or組合,也可以先以分組形式優(yōu)先級(jí)組合然后再與其他條件and、or組合。這些條件組合在前臺(tái)封裝成JSON數(shù)據(jù)傳給后臺(tái),后臺(tái)接收J(rèn)SON數(shù)據(jù)經(jīng)過處理轉(zhuǎn)為條件對(duì)象Condition,根據(jù)條件對(duì)象Condition字段之間的邏輯關(guān)系拼接成查詢的Hql字符串,Hibernate映射了被查詢對(duì)象User與數(shù)據(jù)庫中的表user,故根據(jù)Hql字符串對(duì)User對(duì)象的查詢便實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫表user的查詢。通過如上設(shè)計(jì)思想可以看到重點(diǎn)包括如下過程:

      (a)JSON封裝。

      (b)JSON轉(zhuǎn)化。

      (c)構(gòu)造查詢的Hql字符串。

      下面根據(jù)這3個(gè)過程進(jìn)行詳細(xì)的實(shí)現(xiàn)。

      2.自定義組合條件查詢模塊實(shí)現(xiàn)過程

      2.1 JSON封裝

      JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,采用文本格式,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,是理想的數(shù)據(jù)交換語言[3]。正因?yàn)镴SON格式的數(shù)據(jù)具備這樣的特點(diǎn),故采用JSON格式的數(shù)據(jù)在頁面與后臺(tái)之間進(jìn)行交互。

      Ligerui是國內(nèi)的基于Jquery開發(fā)的一款優(yōu)秀的前端開源框架,采用JSON格式作為數(shù)據(jù)交互的載體,包括一系列的組件:表單、布局、表格等等,這些組件即插即用,需要什么組件,就添加該組件對(duì)應(yīng)的JS文件,借助于ligerui不但能快速開發(fā)出界面風(fēng)格統(tǒng)一的系統(tǒng),而且由于即插即用特點(diǎn)故頁面的加載速度較快,提高了用戶友好度。Ligerui框架的ligerFilter插件已經(jīng)實(shí)現(xiàn)了前臺(tái)查詢條件的JSON封裝,故本著不用重新再造輪子的原則,直接利用ligerFilter插件實(shí)現(xiàn)前臺(tái)查詢條件的JSON封裝。我們的查詢頁面僅包括必需的JS庫與CSS樣式文件便可,查詢頁面借助于ligerFilter插件構(gòu)造的條件組合界面如圖1所示:

      2.2 JSON轉(zhuǎn)為JavaBean

      3.結(jié)論

      (1)借助于Ligerui的ligerFilter插件可以方便的實(shí)現(xiàn)條件的自定義組合查詢,減少了開發(fā)人員對(duì)查詢界面的重復(fù)設(shè)計(jì)工作,對(duì)JSON數(shù)據(jù)的組裝工作。

      (2)通過基于JSON格式的自定義組合條件查詢可以方便地適應(yīng)于系統(tǒng)中查詢模塊查詢字段的變更工作,查詢字段變更時(shí),不需要開發(fā)人員對(duì)查詢界面進(jìn)行改動(dòng),僅僅只需用戶選擇相應(yīng)字段查詢便可。

      (3)通過此設(shè)計(jì)可以方便的進(jìn)行報(bào)表的各種條件統(tǒng)計(jì),查詢出用戶關(guān)心的報(bào)表統(tǒng)計(jì)信息。

      參考文獻(xiàn)

      [1]駱力明,陳小兵,王彥麗.數(shù)據(jù)庫多條件組合查詢優(yōu)化算法研究[J].首都師范大學(xué)學(xué)報(bào):自然科學(xué)版,2007,28(02):23-27.

      [2]趙大偉,陳剛.基于.NET的多條件組合查詢技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2012,08(25):6045-6048.

      [3]龔建華.JSON格式數(shù)據(jù)在Web開發(fā)中的應(yīng)用[J].辦公自動(dòng)化:綜合月刊,2013(10):46-48.

      [4]駱文亮.JSON序列化工具探析[J].信息系統(tǒng)工程,2013(11):15-15.

      作者簡介:封侶(1985—),男,大學(xué)本科,設(shè)計(jì)與開發(fā)工程師,主要研究方向:J2EE開發(fā)。

      猜你喜歡
      組合條件
      活用條件妙求值
      排除多余的條件
      選擇合適的條件
      尋找隱含條件
      蝸居——休閑沙發(fā)設(shè)計(jì)
      現(xiàn)階段市場營銷組合及影響因素研究
      當(dāng)前市場營銷組合與影響因素剖析
      球類材料的合理利用與組合
      為什么夏天的雨最多
      低段習(xí)作教學(xué)策略初探
      广宁县| 沐川县| 尼勒克县| 大埔区| 灵川县| 偏关县| 元朗区| 虞城县| 广河县| 淄博市| 海门市| 宣威市| 乌兰察布市| 景洪市| 长宁区| 苍溪县| 改则县| 长治县| 政和县| 古丈县| 乡城县| 开阳县| 清水县| 搜索| 庆元县| 孝感市| 平果县| 黑水县| 洪雅县| 宁明县| 阆中市| 历史| 玉田县| 西宁市| 万盛区| 邛崃市| 云梦县| 连州市| 通州市| 建德市| 海兴县|