周建韡 羅辛 史有群 宋漢征
摘要:在電子商務(wù)系統(tǒng)中,由于用戶查詢條件的寬泛性,可能會出現(xiàn)大量符合條件的查詢結(jié)果。為了快速響應(yīng)用戶查詢,在數(shù)據(jù)庫設(shè)計和訪問過程中,除了建立合理的索引機制以外,必須對查詢結(jié)果進行分頁處理。在傳統(tǒng)Spring MVC框架基礎(chǔ)上,增加了Bo層,其主要作用為參數(shù)封裝,并從數(shù)據(jù)庫的生成、業(yè)務(wù)邏輯的配置、Dao層、Service層、Controller層、Bo層、Jsp層等多個層次優(yōu)化數(shù)據(jù)訪問過程。通過實驗分析,對比傳統(tǒng)分頁方法,在平均響應(yīng)時間上具有明顯優(yōu)勢,且依托良好的層次結(jié)構(gòu),具有可移植性強的優(yōu)點。
關(guān)鍵詞:電商系統(tǒng); Spring框架; MVC; 數(shù)據(jù)庫設(shè)計; 分頁顯示
中圖分類號:TP393 文獻標識碼:A文章編號:2095-2163(2014)04-0009-05
Abstract:In current e-commerce systems, due to the broadness of user query, database queries often get a large number of eligible query results. For the purpose of quickly respond to user queries, during the process of database design and access, in addition to a reasonable indexing mechanism, the query results display must be paged display. With improved Spring MVC framework, the Bo-layer is added between JSP-layer and Controller-layer, whose main role is as a parameter package. Also, from database generating, business logic configuration, Dao-layer design, Service-layer design, Controller-layer design, Bo-layer design, Jsp-layer design and so on, the paper optimizes data access process. After that , through experimental analysis, compared with traditional paging method, this method has obvious advantages in the aspects such as average response time, a clear frame hierarchy and good portability.
Key words:E-commerce System; Spring Framework; MVC; Database Design; Pagination Display
0引言
隨著電子商務(wù)系統(tǒng)規(guī)模的增加,涉及訪問的數(shù)據(jù)量可能會達到上萬甚至是百萬條,為保證用戶瀏覽數(shù)據(jù)的體驗效果、提升Web服務(wù)器的響應(yīng)速度并減輕服務(wù)器的通信負載,就必須對查詢數(shù)據(jù)進行分頁顯示。
在國內(nèi)外的應(yīng)用研究中,已提出了有關(guān)分頁顯示的多種方案,常見的方法有SQL分頁算法、JSP分頁方法、使用標簽庫、將查詢結(jié)果緩存在HttpSession或變量中實現(xiàn)分頁等,但在實際應(yīng)用中卻都存在一定的不足和缺陷。具體分析如下。
(1)直接利用數(shù)據(jù)庫管理系統(tǒng)提供的分頁功能來實現(xiàn)數(shù)據(jù)分頁。該方法雖然可以提高性能,但不同數(shù)據(jù)庫實現(xiàn)的方法各不相同,因而對于不同的項目缺乏通用性。
(2)將查詢結(jié)果緩存在HttpSession或變量中實現(xiàn)分頁。此方法雖然可以減少數(shù)據(jù)庫的連接次數(shù),但卻會占用大量Web容器內(nèi)存[1],而且會導(dǎo)致用戶查看到的可能是過期數(shù)據(jù)。
(3)直接在數(shù)據(jù)庫上建立游標,使用ResultSet移動游標實現(xiàn)分頁,使游標定位結(jié)果集。這種方式在操作大型數(shù)據(jù)和訪問用戶眾多的時候,卻可能導(dǎo)致DBMS因為資源耗盡而崩潰[2]。
2基于Spring MVC分頁方案
5結(jié)束語
本文針對電子商務(wù)系統(tǒng)中,用戶查詢條件寬泛導(dǎo)致出現(xiàn)大量符合條件的查詢結(jié)果的問題,提出了利用改進的Spring MVC框架實現(xiàn)分頁的方法。首先,利用Spring MVC框架,實現(xiàn)了表示層、業(yè)務(wù)層和邏輯層的分離;其次,在傳統(tǒng)框架基礎(chǔ)上做出改進,加入Bo層,對數(shù)據(jù)進行封裝,縮短數(shù)據(jù)傳輸時間。本文的測試分析結(jié)果顯示,該方法具有響應(yīng)時間短、移植性高的優(yōu)點。
但本文提出的方法也存在不足,當商品輸入為海量數(shù)據(jù)時,其響應(yīng)時間就會較長,下一步將針對此現(xiàn)象作出改進。其后的工作重點還包括將提出的分頁技術(shù)實現(xiàn)相應(yīng)的模塊化,可以被不同項目直接調(diào)用。此外,對于頻繁讀取的數(shù)據(jù),可將符合條件的數(shù)據(jù)全部讀取至Web服務(wù)器,并在其上生成一個XML文件,則客戶端即可直接和XML文件實現(xiàn)交互[7],雖然此方法已經(jīng)實現(xiàn),但仍存在可完善的空間,這也是未來工作的一個研究重點。
參考文獻:
[1]何玲娟,蟻 龍,劉連臣. 一種松耦合高復(fù)用 MVC 模式的 Web 分頁實現(xiàn)[J]. 計算機工程與應(yīng)用,2007,43( 15) : 95 -97.
[2]崔行臣,張明光. 一種基于Struts框架的Web分頁模型的設(shè)計與實現(xiàn)[J]. 山東科學(xué), 2013, 26(4):60-64.
[3]丁振凡. 利用Spring MVC實現(xiàn)數(shù)據(jù)分頁顯示處理[J]. 智能計算機與應(yīng)用. 2012,2(5):20-22.
[4]陳雄華, 林開雄. Spring 3.x 企業(yè)級應(yīng)用開發(fā)實戰(zhàn)[M]. 北京:電子工業(yè)出版社, 2013.
[5]Naveen Balani, Spring系列:Spring框架簡介. [EB/OL]. http://www.ibm.com/developerworks/cn/java/wa-spring1/, 2005-08-18.
[6]丁振凡, 李馨梅. 基于JdbcTemplate的數(shù)據(jù)庫訪問處理[J]. 智能計算機與應(yīng)用,2012,2(3):29-32.
[7]勾成圖,張瞡,李軍懷. 海量數(shù)據(jù)分頁機制在Web信息系統(tǒng)中的應(yīng)用研究[J]. 計算機應(yīng)用,2005,25(8):1926-1929.