999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSON格式的自定義組合條件查詢設計與實現

2014-10-21 11:09:39封侶
電子世界 2014年12期

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

【關鍵詞】組合;條件;查詢;JSON;ligerui;ligerFilter;Hibernate;

引言

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

查詢模塊如此重要,對它的設計當然需要有合理性、科學性、易用性、易擴展等特點,并且能滿足我們日常的各種查詢需求。鑒于此,借助于基于Jquery的前端UI控件組合ligerui的ligerFilter插件進行自定義組合條件查詢的開發將使得我們的查詢模塊更具有靈活性。

1.自定義組合條件查詢模塊設計思想

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

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

(a)JSON封裝。

(b)JSON轉化。

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

下面根據這3個過程進行詳細的實現。

2.自定義組合條件查詢模塊實現過程

2.1 JSON封裝

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,采用文本格式,易于人閱讀和編寫,同時也易于機器解析和生成,是理想的數據交換語言[3]。正因為JSON格式的數據具備這樣的特點,故采用JSON格式的數據在頁面與后臺之間進行交互。

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

2.2 JSON轉為JavaBean

3.結論

(1)借助于Ligerui的ligerFilter插件可以方便的實現條件的自定義組合查詢,減少了開發人員對查詢界面的重復設計工作,對JSON數據的組裝工作。

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

(3)通過此設計可以方便的進行報表的各種條件統計,查詢出用戶關心的報表統計信息。

參考文獻

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

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

[3]龔建華.JSON格式數據在Web開發中的應用[J].辦公自動化:綜合月刊,2013(10):46-48.

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

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

主站蜘蛛池模板: 亚洲欧美另类久久久精品播放的| 国产亚洲精品无码专| 色欲不卡无码一区二区| 国产精品成| 激情午夜婷婷| 色综合中文综合网| 亚洲人成网址| 免费毛片a| 四虎永久在线精品国产免费 | 亚洲成人黄色在线观看| 久久99国产综合精品1| 这里只有精品在线播放| 狂欢视频在线观看不卡| 在线观看无码a∨| 久久久久亚洲av成人网人人软件 | 欧洲熟妇精品视频| 国产亚洲现在一区二区中文| 国产精品久久久久久影院| 国产一区免费在线观看| 亚洲Aⅴ无码专区在线观看q| 国产网站免费| 国产91在线免费视频| 美女被操黄色视频网站| 国产成人高清精品免费软件| 亚洲无线一二三四区男男| 亚洲精品不卡午夜精品| 老司机久久99久久精品播放| 精品一区二区三区自慰喷水| 国产成人高清精品免费软件| 97国产一区二区精品久久呦| 成人va亚洲va欧美天堂| 男女精品视频| 蜜芽国产尤物av尤物在线看| 国产精品刺激对白在线| 久久超级碰| 国产精品lululu在线观看| 亚洲婷婷丁香| 国产精品美女网站| 中文字幕无码电影| 欧美h在线观看| 国产精品一区二区国产主播| 成人91在线| 任我操在线视频| 国产一区亚洲一区| 成人在线观看一区| 久久精品波多野结衣| 99在线观看精品视频| 亚洲欧洲自拍拍偷午夜色| 欧美翘臀一区二区三区| 欧洲欧美人成免费全部视频| 日本精品中文字幕在线不卡| 国产一区二区精品高清在线观看 | 国产sm重味一区二区三区 | 成人亚洲视频| 久久久久无码国产精品不卡 | 四虎永久在线| 国产综合精品一区二区| 在线观看的黄网| 精品国产欧美精品v| 国内99精品激情视频精品| 亚洲色图欧美| 91久久青青草原精品国产| 国产美女在线观看| 91高清在线视频| 国产乱子伦无码精品小说| 最新日本中文字幕| 久久九九热视频| 国产乱人伦偷精品视频AAA| 亚洲成在线观看| 在线看免费无码av天堂的| 久久久久人妻精品一区三寸蜜桃| 99在线视频免费观看| 丝袜高跟美脚国产1区| 好吊妞欧美视频免费| 激情视频综合网| 99一级毛片| 在线看国产精品| 色综合色国产热无码一| 精品国产中文一级毛片在线看 | 女同国产精品一区二区| 华人在线亚洲欧美精品| 成人精品区|