亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2019-03-26 03:22:18權(quán)
        關(guān)鍵詞:表示層插件框架

        唐 權(quán)

        (四川職業(yè)技術(shù)學院,遂寧 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ò)平臺下載,下載后導入到項目的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ù)可以作為頁面導航的參數(shù)。如:下一頁的導航請求可寫為 〈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ā)過程提供了一種較的解決方案。

        猜你喜歡
        表示層插件框架
        框架
        廣義框架的不相交性
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        基于Spring的企業(yè)級Web項目架構(gòu)設(shè)計研究
        軟件(2019年6期)2019-10-08 06:27:21
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        ASP.NET三層構(gòu)架解析
        基于SSH框架科研管理系統(tǒng)的設(shè)計
        MapWindowGIS插件機制及應(yīng)用
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        基于Revit MEP的插件制作探討
        亚洲国产成人av毛片大全| 少妇性l交大片| 亚洲精品欧美二区三区中文字幕| 久久免费大片| 男人的av天堂狠狠操| 国产一区二区三区免费精品视频| 国产一区二区三区小说| 国产亚洲精品bt天堂精选| 五月婷一本到五月天| 久久一区av蜜桃人妻| 水蜜桃在线精品视频网| 无遮挡呻吟娇喘视频免费播放| 乱码午夜-极品国产内射| 国产成人自产拍免费视频| 视频区一区二在线观看| 人成午夜大片免费视频77777| 久久人人妻人人做人人爽| 亚洲九九夜夜| 男女视频网站在线观看| 亚洲日韩久久综合中文字幕| 日本夜爽爽一区二区三区| 极品人妻少妇一区二区| 国产老熟女精品一区二区| 内射欧美老妇wbb| 伊人影院综合在线| 青青草视频国产在线观看| 手机在线免费av资源网| 日产亚洲一区二区三区| 久久精品久久精品中文字幕| 久久久婷婷综合五月天| 日韩av一区二区观看| 亚洲精品午夜无码专区| 99热成人精品免费久久| 女同同成片av免费观看| 末成年人av一区二区| 人妻少妇精品无码专区二区 | 国产视频不卡在线| 亚洲av综合色一区二区| 女的扒开尿口让男人桶30分钟| 精品国产一区二区三区久久久狼| 日本中文字幕一区二区视频|