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

SSM框架條件分頁查詢研究與實現(xiàn)

2019-03-26 03:22:18權(quán)
關(guān)鍵詞:用戶服務(wù)

唐 權(quán)

(四川職業(yè)技術(shù)學(xué)院,遂寧 629000)

0.引言

SSM(Spring+SpringMVC+Mybatis)框 架 是一個非常優(yōu)秀的Java EE輕量級框架,應(yīng)用于Java EE企業(yè)級項目的開發(fā)中,成為當前主流Web應(yīng)用程序開發(fā)框架。在Web應(yīng)用項目中數(shù)據(jù)維護是基礎(chǔ)性工作,具有非常重要的作用,也是工作量較大的環(huán)節(jié),主要包括對數(shù)據(jù)的查詢、增加、刪除與修改。項目開發(fā)中如何減輕這些工作量,實現(xiàn)方式與標準統(tǒng)一,節(jié)省開發(fā)時間,提高工作效率具有重要的作用。本文就數(shù)據(jù)維護中的條件分頁查詢,把PageHelper技術(shù)整合到SSM框架中,對SSM框架以最小的侵入,實現(xiàn)快速分頁查詢。

1.SSM框架概述

SSM框架包括三個部分,分別是Spring技術(shù)、SpringMVC技術(shù)、Mybatis技術(shù)。Spring技術(shù)是整個框架的核心,通過Spring依賴注入模式,把SpringMVC與MyBatis框架整合在一起。其中SpringMVC主要實現(xiàn)模塊的 MVC(Model View Controller)功能,負責把用戶的請求根據(jù)映射關(guān)系提交到對應(yīng)的控制器;MyBatis實現(xiàn)數(shù)據(jù)訪問層的功能,通過ORM映射與數(shù)據(jù)庫進行數(shù)據(jù)交互,讀取數(shù)據(jù)庫的數(shù)據(jù)或保存數(shù)據(jù)實現(xiàn)數(shù)據(jù)持久化;業(yè)務(wù)邏輯層也叫服務(wù)層,實現(xiàn)應(yīng)用程序的業(yè)務(wù)邏輯,向上給控制層的提供服務(wù),向下調(diào)用數(shù)據(jù)訪問層和數(shù)據(jù)庫進行數(shù)據(jù)交互。SSM框架整合后數(shù)據(jù)查詢業(yè)務(wù)流程各模塊對象序列圖如圖1所示。

第一.用戶通過Browser發(fā)送查詢請求,被SpringMVC框架的DispatcherServlet攔截,通過請求映射關(guān)系,轉(zhuǎn)到對應(yīng)的控制器Con

圖1 SSM整合框架查詢業(yè)務(wù)序列圖

第二.Controller根據(jù)請求的url找到對應(yīng)的處理方法,在方法中調(diào)用服務(wù)層Service對應(yīng)的方法查詢數(shù)據(jù)。

第三.Service層查詢數(shù)據(jù)方法又去調(diào)用數(shù)據(jù)訪問層Dao層對應(yīng)的數(shù)據(jù)查詢接口。

第四.Dao層接口最終通過MyBatis提供的ORM映射,在數(shù)據(jù)庫中完成查詢業(yè)務(wù),并返回查詢結(jié)果對象信息。

第五.根據(jù)各層對象的調(diào)用關(guān)系,最終會把查詢結(jié)果封裝在對象列表中,返回到控制層Controller,最終到瀏覽器顯示查詢結(jié)果。

2.SSM條件查詢的實現(xiàn)

本節(jié)將以用戶管理實例來展現(xiàn)條件查詢業(yè)務(wù)的在SSM框架中具體實現(xiàn)過程,其中用戶的數(shù)據(jù)結(jié)構(gòu)是User(id,name,password,department)。

2.1 Dao數(shù)據(jù)訪問層的實現(xiàn)

Dao層的實現(xiàn)包括三個過程,其一編寫User對象用來封裝查詢用戶信息,其二是編寫數(shù)據(jù)查詢訪問接口,其三是配置接口映射文件實現(xiàn)接口的中數(shù)據(jù)查詢。

第一.創(chuàng)建User類:根據(jù)用戶表的信息及字段,定義用戶對象User類及其屬性和getters、setters方法,為了簡便可以把字段名與對象的屬性名定義成相同名字。

第二.創(chuàng)建用戶條件查詢接口:創(chuàng)建用戶接口類 UserDao,定義查詢接口findUserList,其中返回值為User對象列表,查詢參數(shù)也是User封裝的查詢用戶各字段的屬性值。

第三.創(chuàng)建配置接口映射文件:創(chuàng)建映射文件UserDao.xml,其中namespace屬性與接口類名稱對應(yīng),select元素對應(yīng)執(zhí)行查詢sql語句,id屬性對應(yīng)接口查詢用戶方法名,parameterType對應(yīng)接口方法中參數(shù)類型,resultType屬性對應(yīng)查詢返回結(jié)果類型。MyBatis框架會通過ORM映射把查詢結(jié)果的記錄轉(zhuǎn)換成User對象放在列表中。接口方法的參數(shù)User中封裝查詢條件,通過if子句測試每一個查詢條件,如何不為空就加入到查詢條件的sql語句中,關(guān)鍵代碼如下:

2.2 Service服務(wù)層實現(xiàn)

Service層也叫業(yè)務(wù)邏輯層,在服務(wù)層創(chuàng)建服務(wù)類UserService,注入數(shù)據(jù)訪問層UserDao接口,定義服務(wù)層查詢業(yè)務(wù)的方法find-UserList,在方法中調(diào)用數(shù)據(jù)訪問層UserDao的用戶查詢接口實現(xiàn)數(shù)據(jù)查詢,返回結(jié)果為User對象列表供控制層調(diào)用。主要實現(xiàn)代碼如下:

關(guān)鍵說明:

(1).@Service注解是表示服務(wù)類會被Spring框架掃描并裝配成Bean對象;

(2).@Transactional注解表示在服務(wù)層所有的方法都會被納入SSM框架的事務(wù)管理器管理,保證服務(wù)層方法的原子性;

(3).@Autowired注解表示服務(wù)層類對數(shù)據(jù)訪問層接口UserDao的依賴性,框架會通過類型自動裝配成Bean并注入到當前類的Bean中。

2.3 Controller控制層實現(xiàn)

SSM框架中的Controller層由程序員開發(fā),通過SpringMvc框架的DispathcerServlet處理把客戶請求轉(zhuǎn)到控制層,其關(guān)鍵代碼如下:

關(guān)鍵代碼說明:

(1)@Controller注解表示該控制層類被Spring框架掃描裝配成控制器的Bean對象;

(2)@Autowired按類型裝配服務(wù)層的userService為Bean對象,自動注入到控制器;

(3)@RequestMapping注解表示查詢用戶的url映射為findUserList,即瀏覽器發(fā)出的以findUserList為后綴的請求會映射到當前控制器的findUserSeletive方法進行處理。

(4)findUserSelective方法的參數(shù)map封裝方法查詢結(jié)果數(shù)據(jù)到表示層;參數(shù)user封裝的查詢條件信息,供查詢使用。

(5)通過返回字符串“findUserSelective”,SpringMVC框架會解析到指定路徑下對應(yīng)的Jsp頁面顯示查詢結(jié)果。

圖2 條件查詢結(jié)果

2.4 表示層的實現(xiàn)

表示層用于顯示查詢結(jié)果數(shù)據(jù),主要包括條件查詢表單與查詢結(jié)果顯示兩部分。

查詢表單封裝查詢關(guān)鍵字段,為了方便查詢參數(shù)自動封裝成user對象,要求表單查詢條件輸入項的name屬性與User類的屬性名相同,表單提交后就會自動封裝到成user對象,作為控制層的輸入?yún)?shù)。查詢結(jié)果通過標簽庫〈c:forEach items="${lists}"var="user"〉把控制器map參數(shù)中的列表lists通過EL表達式${lists}循環(huán)取出來存放在變量user中,然后再通過EL表達式${user.id}、${user.name}、${user.department}等方式在表格中顯示出來。通過以上各層的操作,能夠正確在SSM框架中實現(xiàn)數(shù)據(jù)的條件查詢業(yè)務(wù),執(zhí)行結(jié)果如圖2所示。

3.SSM框架整合分頁查詢模塊

上節(jié)的SSM框架實現(xiàn)了條件查詢業(yè)務(wù),但是還沒有完成分頁功能,如果查詢結(jié)果數(shù)據(jù)量較大,必須進行分頁操作,就是在SSM框架上整合MyBatis的分頁插件PageHelper,快捷實現(xiàn)查詢數(shù)據(jù)分頁功能。

3.1 分頁插入的引入

MyBatis的分頁插件包括兩個軟件包,分別是pagehelper-4.1.4.jar與jsqlparser-0.9.5.jar。不同的版本號可以通過網(wǎng)絡(luò)平臺下載,下載后導(dǎo)入到項目的WEB-INF下的lib文件夾中,然后在SSM框架的MyBatis-config.xml文件中進行插件配置。

配置文件中兩個最主要點必須配置:其一是通過“interceptor”屬性在框架中引入Page-Helper插件類;其二是通過屬性"dialect"配置底層數(shù)據(jù)庫的類型,本文項目中使用的是mysql數(shù)據(jù)庫。其它屬性是對分頁其它功能進行規(guī)范可參考說明文檔進行選擇配置。

3.2 分頁功能實現(xiàn)

配置好分頁插件后就是在項目中使用插件完成分頁工作,該項工作主要集中在控制層與表示層兩個方面。

(1)控制層分頁實現(xiàn):控制層查詢方法處作如下改變:其一是修改控制層查詢方法中的參數(shù),加入頁號pageNum與頁面記錄數(shù)pageSize;其二是在執(zhí)行查詢之間加入PageHelper.startPage(pageNum,pageSize)語句;其三是把查詢結(jié)果封裝成分頁信息PageInfo對象;其四是通過map參數(shù)封裝查詢條件與分頁信息到表示層,主要代碼如下:

(2)表示層的實現(xiàn):表示層改變主要是在表格下面增加分頁控件,并綁定分頁請求地址和請求參數(shù),分頁請求地址與查詢地址相同,分頁請求參數(shù)包括查詢條件與頁面信息,查詢條件從返回的map對象的user屬性中讀取,頁面參數(shù)通過返回的PageInfo對象成員中獲取。其中PageInfo包含 了 成 員 有 :firstPage、prePage、nextPage、lastPage、pages、total 等,分別封裝了首頁、前一頁、下一頁、最后頁的頁號和頁面總數(shù)、記錄總數(shù)可以作為頁面導(dǎo)航的參數(shù)。如:下一頁的導(dǎo)航請求可寫為 〈a href="findUserList?pageNum=${page.nextPage}&pageSize=${page.page-Size}&id=${user.id}&name=${user.name}&department=${user.department}〉 下一頁〈/a〉這樣的形式。

通過控制層與表示層的簡單改變,就可以簡潔實現(xiàn)數(shù)據(jù)的條件查詢分頁任務(wù),而且不會改變服務(wù)層與數(shù)據(jù)訪問層的任何代碼,以最小的侵入完成了條件查詢分頁功能,分頁后的效果如圖3所示。

圖3 分頁條件查詢結(jié)果

4.結(jié)束語

本文應(yīng)用于SSM框架,從數(shù)據(jù)訪問層、服務(wù)層、控制層、表示層來構(gòu)建了表單查詢功能的實現(xiàn)過程,并在此基礎(chǔ)上加入MyBatis的分頁插件PageHelper,通過對控制層與表示層的簡單的改造,快速實現(xiàn)了數(shù)據(jù)維護中的綜合查詢分頁功能,為實際的項目開發(fā)過程提供了一種較的解決方案。

猜你喜歡
用戶服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
主站蜘蛛池模板: 欧美在线免费| 亚洲女同一区二区| 精品国产自| 日韩在线播放欧美字幕| 中文国产成人精品久久| 国产自在线播放| 九色国产在线| 亚洲Av激情网五月天| 天天综合色天天综合网| 亚洲天堂网站在线| 国产精品亚洲一区二区三区z| 久久无码免费束人妻| lhav亚洲精品| 国产人人射| 91午夜福利在线观看精品| 亚洲国产亚洲综合在线尤物| 亚洲色偷偷偷鲁综合| 六月婷婷精品视频在线观看| 九九热这里只有国产精品| 国产主播福利在线观看| 美女被操黄色视频网站| 国产精品手机在线播放| 91网址在线播放| jijzzizz老师出水喷水喷出| 国产精品久久久久鬼色| 国产凹凸视频在线观看| 亚洲综合精品第一页| 欧美精品亚洲精品日韩专区va| 国产精品真实对白精彩久久| 国产凹凸视频在线观看| 一级毛片免费高清视频| 呦女亚洲一区精品| 国产成人91精品免费网址在线| 中国一级特黄视频| 欧美日本在线一区二区三区| 91亚洲视频下载| 91成人在线观看| 国产精品网拍在线| 91国内视频在线观看| 亚洲成aⅴ人片在线影院八| 日韩在线永久免费播放| 国产欧美日韩91| 夜夜操天天摸| 国产色网站| 思思99热精品在线| 999在线免费视频| 青青热久免费精品视频6| 黄色网站在线观看无码| 88国产经典欧美一区二区三区| 日韩午夜福利在线观看| 免费一级无码在线网站| 久久午夜夜伦鲁鲁片不卡| 欧美日韩精品在线播放| 日本人又色又爽的视频| 第一页亚洲| 欧美日本在线播放| 狠狠色狠狠综合久久| 亚洲狼网站狼狼鲁亚洲下载| 欧美日在线观看| 久久99精品久久久久纯品| 一本无码在线观看| 亚洲欧美人成人让影院| 亚洲最大看欧美片网站地址| 97亚洲色综久久精品| 久久综合九色综合97婷婷| 国产精品美女网站| 亚洲精品少妇熟女| 在线观看精品自拍视频| 99re在线观看视频| 国产女人在线视频| 国产成人夜色91| 日韩亚洲综合在线| 欧洲一区二区三区无码| 欧美天堂在线| 在线日本国产成人免费的| 亚洲中文在线视频| 色亚洲成人| 婷婷99视频精品全部在线观看| 91精品专区国产盗摄| 国产av色站网站| av在线5g无码天天| 久久精品视频亚洲|