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

基于Spring MVC+JDBCTemplate的Web系統的研究與應用

2017-03-22 12:37:09趙璘王紅霞
軟件工程 2017年1期
關鍵詞:數據庫信息方法

趙璘 王紅霞

摘 要:Spring MVC以其松散耦合的特性在業內被廣泛使用,JDBCTemplate對數據庫的操作在JDBC層面做了深層次的封裝,簡化了項目中繁瑣的JDBC操作。Spring MVC與JDBCTemplate的有機結合,優化了軟件開發的過程。在分析Spring MVC與JDBCTemplate的技術要點、工作原理的基礎上,通過實例,展示了Spring MVC+JDBCTemplate的整合應用給項目帶來的便利。

關鍵詞:SpringMVC;JDBCTemplate;封裝;整合

中圖分類號:TP311.5 文獻標識碼:A

1 引言(Introduction)

在Web應用中,表現層是Web應用不可忽略的重要組成部分,Spring為表現層提供了一個十分優秀的Web框架——Spring MVC。與大多數其他的Web框架一樣的設計理念,都是遵循MVC的思想架構。Spring MVC通過注解的方式,讓POJO成為處理請求的控制器,無需實現任何的接口[1]。另外,Spring MVC最大的優點就是松散耦合,更具有靈活性和可擴展性[2]。

JDBC已經能夠滿足大部分用戶最基本的對數據庫的需求,但是在使用JDBC時,應用必須自己來管理數據庫資源。JDBCTemplate正是為了減少JDBC繁瑣的代碼而設計出來的。Spring對數據庫操作需求提供了很好的支持,并在原始JDBC基礎上,構建了一個抽象層,提供了許多使用JDBC的模板和驅動模塊,為Spring應用操作關系數據庫提供了更大的便利[3-6]。Spring封裝好的模板,封裝了數據庫存取的基本過程,方便使用。

2 Spring MVC的技術要點(Technical points of Spring MVC)

2.1 Spring MVC的組件

(1)DispatherServlet:前置控制器,負責接收并處理所有的web請求,根據HandlerMapping找到具體的Controller,由Controller完成具體的處理邏輯。

(2)HandlerMapping:負責處理web請求和具體的Controller之間的映射關系匹配。

(3)Controller:DispatherServlet的次級控制器,web請求的具體處理者。DispatherServlet獲得HandlerMapping的返回結果后,調用Controller的方法處理前端發出的請求,處理結果通過ModelAndView對象返回。

(4)ViewResolver:用來處理視圖名與具體的View實例之間的映射對應關系。根據ModelAndView中的視圖名查找相應的View實現類,然后將查找的結果返回給DispatcherServlet,DispatcherServlet最終會將ModelAndView中的模型數據交給返回的View處理最終的視圖渲染工作。

(5)View:為支持多種視圖技術而存在,統一抽象視圖的生成策略,根據模型數據輸出具體的視圖。

2.2 Spring MVC的體系架構

Spring MVC是基于Model 2實現的,Model 2是MVC模型在Java Web應用中的一個變體。Spring MVC的底層機制是MVC,是利用處理器分離模型、視圖和控制達到松散耦合的效果。Spring MVC的框架模型如圖1所示。

從接收請求開始,到返回響應為止,Spring MVC框架中的各個組件各司其職,通力合作,有序配合地完成各自的工作。在整個Spring MVC框架中,DispatcherServlet處于核心領導地位。它負責組織和協調不同的組件完成從請求到響應的任務。其處理請求的整體過程如下:

(1)整個過程從客戶端發出一個HTTP請求開始,Web應用服務器接收請求,如果與DispatcherServlet的請求路徑相匹配,Web容器就將該請求轉發給DispatcherServlet處理。

(2)DispatcherServlet接收到這個請求后,將根據請求的信息及HandlerMapping的配置找到處理請求的處理器,即Handler。注意:Spring MVC中并沒有定義Handler接口。

(3)當DispatcherServlet根據HandlerMapping得到對應當前請求的Handler后,通過HandlerAdapter對Handler進行封裝。再通過統一的適配器接口調用Handler(HandlerAdapter是Spring MVC的框架級接口)。

(4)處理器完成業務處理后,返回一個ModelAndView給DispatcherServlet,ModelAndView包含視圖邏輯的名稱和模型數據的信息。

(5)ModelAndView中包含的是邏輯視圖名,不是真正意義的視圖對象。DispatcherServlet通過ViewResolver完成從邏輯視圖名到真實視圖對象的解析。

(6)當得到真正的視圖對象后(View),DispatcherServlet就使用這個View對象對ModelAndView中的模型數據進行視圖渲染。

(7)最后客戶端得到的響應信息可能是一個頁面(HTML、JSP),也可能是XML、JSON串或其他不同的媒體形式。

2.3 Spring MVC配置

(1)配置DispatcherServlet

DispatcherServlet在web.xml中進行配置,它讓Spring MVC能夠生龍活虎。基本代碼如下所示:

webservlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocationclasspath:web-servlet.xml

1

webservlet

*.do

3 JDBCTemplate的應用(The application of JDBCTemplate)

由于JDBC API過于底層,直接進行JDBC編寫數據庫程序,需要完成數據庫代碼(SQL)、還需要編寫獲取JDBC連接、異常處理、釋放連接資源等代碼,實在是過于繁瑣。Spring JDBC通過模板和回調機制簡化了JDBC編寫數據庫程序的復雜度。借助JDBCTemplate,程序員只需要編寫處理業務的核心SQL語句即可。

3.1 JDBCTemplate配置

在Spring的配置文件ApplicationContext.xml中進行數據源的配置。以下代碼以mariadb數據庫為例,代碼如下:

destroy-method="close"p:driverClassName="org.mariadb.jdbc.Driver"

p:url="dbc:mysql://localhost:3306/asms?useUnicode=true&characterEncoding=UTF-8"

p:username="asms"

p:password="asms"/>

3.2 JDBCTemplate中的常用方法

(1)update()方法用于執行數據庫表的新增、修改、刪除的SQL語句。

(2)batchUpdate()方法用于執行批處理相關的SQL語句。

(3)query()方法及queryForXXX()方法:用于執行查詢相關的SQL語句。其中queryForXXX()根據返回對象類型進行方法的選擇(queryForObject,queryForList等)。

(4)call()方法用于執行存儲過程、函數相關的SQL語句。

3.3 JDBCTemplate實例

在代碼中,以向表nps_classes中插入數據為例。首先定義SQL語句,然后使用JDBCTemplate執行該SQL。

privatestaticfinal String SQL_ADD_CLASS="insert into nps_classes(classid,classname,classdesc,batid,apid) values(?,?,?,?,?)";

publicvoidaddClass(Map map) {

Object[]params=MapUtil.getObjectArrayFromMap(map, "classid,classname,classdesc,

batid,apid");

jt.update(SQL_ADD_CLASS,params);

}

4 應用實例(Application instance)

運用實際案例介紹Spring MVC在項目中的實現過程。基本功能說明:畢業生首次登錄系統要完成自主注冊功能,該功能分為兩步完成:第一步,通過姓名和身份證號在畢業生信息中進行校驗,校驗成功后進入第二步,校驗失敗重新填寫姓名和身份證號進行校驗。第二步:在第一步校驗成功后,需要填寫姓名拼音、電子郵箱、驗證碼、密碼、確認密碼提交至系統保存,保存成功即畢業生注冊成功。

(1)在注冊第二步,填寫相應信息后,點擊“下一步”按鈕,向服務端發送post請求,如圖2所示。

(2)分發器得到客戶端請求后,通過控制器映射匹配到負責業務邏輯處理的控制器,并將請求轉發給該控制器。該控制器所在的Java類為StuRegisterController.java,代碼如下:

@RequestMapping(value="/stu/registerasmsstep2.do")

public Mapregisterasmsstep2(String studentno,String stupwd,Stringstudentnameen)

throwsIOException {

Mapjsonrslt=new HashMap();

boolean flag=false;

flag=this.registerService.updateregisterasmsstep2(studentno,stupwd,studentnameen);

jsonrslt.put("flag",flag);

returnjsonrslt;

}

(3)控制器調用RegisterServiceImpl處理注冊第二步的業務邏輯,其處理方法如下:

@Override

publicboolean updateregisterasmsstep2(String studentno,

Stringstupwd,Stringstudentnameen) {

boolean flag=false;

MaprmParam=new HashMap();

rmParam.put("studentno",studentno);

rmParam.put("stupwd",stupwd);

rmParam.put("studentnameen",studentnameen);

int i=jdbctemplate.update(sql.updateregisterasmsstep2(),rmParam);

if(i==1){

flag=true;

}

return flag;

}

(4)由于業務要求第一步注冊校驗時已將畢業生信息插入到數據表中,所以第二步注冊僅僅是更新部分數據信息,RegisterServiceImpl中的JDBCTemplate更新數據表的信息,調用SQL如下:

public String updateregisterasmsstep2() {

return"update ASMS_STUREGINFO set stupwd=:stupwd,studentnameen=:studentnameen where studentno=:studentno";

}

(5)響應返回至客戶端獲取flag數據,則顯示“注冊成功,請使用學號和密碼進行系統登錄”信息,如圖3所示。

5 結論(Conclusion)

本文分析了Spring MVC的技術要點和JDBCTemplate的應用。Spring MVC技術要點包括組件、框架模型和配置,JDBCTemplate的應用包括配置和常用方法。最后通過實際項目,介紹了web請求在Spring MVC中的應用,以及JDBCTemplate如何操作數據表。

綜上得出:Spring MVC大大簡化了程序開發的繁瑣度,JDBCTemplate降低了編寫數據庫程序的復雜度。Spring MVC+JDBCTemplate的組合值得在Web應用軟件開發中廣泛使用。

參考文獻(References)

[1] 張文宇,許明健,薛昱.論spring的零配置與XML配置[J].計算機系統應用,2015,24(2):270-275.

[2] 周燕玲.Spring MVC框架開發WEB應用程序的探索與研究[J].科技廣場,2016(6):25-28.

[3] 葉雯.基于Spring MVC框架的Web登錄模塊的設計與實現[J].電腦知識與技術,2013(35):7983-7984.

[4] Zhang Chao,Zhao Ping,He Jing.Design and Implementation of the Control System Software Based on MVC Model[J].High Power Laser and Particle Beams,2013(S1):91-95.

[5] TianPengfei,Tian Di,Yang Guang.Design and Implementation of LIBS Software Based on MVC Architecture[J].Journal of Jilin University(Engineering and Technology Edition),2016(1):242-245.

[6] Lin HC,et al.Development of a Real-Time Clinical Decision Support System upon the Web MVC-Based Architecture for Prostate Cancer Treatment[J].BMC Med Inform DecisMak,2011(926):3306-3309.

作者簡介:

趙 璘(1981-),男,碩士,助教.研究領域:軟件工程.

王紅霞(1982-),女,碩士,工程師.研究領域:計算機軟件與

理論.

猜你喜歡
數據庫信息方法
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 日本a级免费| 日韩欧美中文亚洲高清在线| 91在线无码精品秘九色APP| 国产在线观看一区二区三区| 又粗又硬又大又爽免费视频播放| 精品国产美女福到在线直播| 一本大道香蕉久中文在线播放| 国产精品福利尤物youwu | 亚洲Av综合日韩精品久久久| aa级毛片毛片免费观看久| 91人妻在线视频| 伊人丁香五月天久久综合 | 亚洲欧美不卡| 99九九成人免费视频精品| 国产精品女人呻吟在线观看| 欧美成人h精品网站| 四虎永久在线| 欧美成人午夜在线全部免费| 亚洲无码熟妇人妻AV在线| 国内老司机精品视频在线播出| 99久久精品久久久久久婷婷| 国产网友愉拍精品| 免费视频在线2021入口| 国产精品久久久久久久伊一| 国产成人三级在线观看视频| 91精品国产福利| 午夜限制老子影院888| 美女内射视频WWW网站午夜 | 国产三级a| 免费xxxxx在线观看网站| 亚洲精品成人福利在线电影| 午夜综合网| 欧美色图久久| 色综合天天娱乐综合网| 91香蕉国产亚洲一二三区| 无码综合天天久久综合网| 美女黄网十八禁免费看| 欧美乱妇高清无乱码免费| 亚洲av片在线免费观看| 欧美成人综合视频| 日本在线国产| 99久久国产综合精品2020| 国精品91人妻无码一区二区三区| 日韩无码视频专区| 六月婷婷精品视频在线观看 | 日本免费高清一区| 九色视频在线免费观看| 久久亚洲国产一区二区| 国产丝袜一区二区三区视频免下载| a级毛片免费看| 中文字幕久久亚洲一区| 日韩无码白| 国产成人a毛片在线| 国产性猛交XXXX免费看| 为你提供最新久久精品久久综合| 91亚洲视频下载| 中文字幕在线观| 婷婷午夜影院| 少妇精品网站| 欧美一级99在线观看国产| 成人免费午夜视频| 亚洲一级毛片免费看| 四虎永久在线| 亚洲综合专区| 国产成人亚洲精品蜜芽影院| 久久窝窝国产精品午夜看片| 久久香蕉国产线看精品| 免费一级无码在线网站| 国产迷奸在线看| 久久国语对白| 日本一区二区不卡视频| 欧美精品一区二区三区中文字幕| 亚洲欧美一区二区三区麻豆| 91国内在线观看| 国产欧美精品专区一区二区| 国内精品久久久久久久久久影视| 黄色福利在线| 91在线播放免费不卡无毒| 亚洲熟女中文字幕男人总站 | 国产一级精品毛片基地| 在线另类稀缺国产呦| 国产99在线|