《Spring MVC MyBatis開發從入門到項目實戰》分為四部分。第yi部分是Java開發環境的搭建,包括JDK的下載與安裝、環境變量的配置、MyEclipse的下載與基本配置。第二部分是MyBatis技術入門,包括剖析JDBC的弊端、MyBatis的背景介紹、入門程序的編寫、配置文件的剖析、高級映射及緩存結構的講解,*后還介紹了MyBatis與Spring框架的整合。第三部分是Spring MVC技術入門,包括Spring MVC的背景介紹、架構整體剖析、環境搭建、處理器與映射器的講解、前端控制器的源碼分析、多種視圖解析器的介紹、請求映射與參數綁定的介紹、Validation校驗與異常處理和攔截器的講解。第四部分是Spring MVC與MyBatis的項目整合實戰篇,通過對水果網絡銷售平臺的需求分析、功能設計、數據庫設計以及模塊詳細編碼實現,讓讀者了解整合項目開發的整體流程。本書對框架的介紹通俗易懂,由淺入深,結合實例展示,為讀者的入門提供了有力的幫助,且為以后的技術提升打下堅實的基礎。
經驗多:百萬訪問量博主傾囊相授,帶你走進Web開發的方方面面。
零基礎:從簡單的樣例做起,逐漸深入技術核心。
內容全:涵蓋Spring MVC與MyBatis的33個技巧,56個實例。
重實戰:與真實項目案例相結合,深入實戰開發的5層架構
自從Java語言誕生以來,就有許多基于Java語言開發的軟件涌現,而其中使用Java EE開發環境來開發企業級Web應用也有許多年的歷史了。Java EE平臺經過多年的更新和換代,其穩定性和完善的安全機制使其牢牢佇立于企業級Web應用開發的前列,受到了許多Web開發者的青睞。在Java EE發展的過程中,許多的開發者和組織對其API進行了優化、改進和封裝,進而涌現出了許多優秀的開源框架,如Rod Johnson創建的Spring框架、Gavin King和JBoss團隊開發的Hibernate框架、Apache Jakarta項目的Struts框架,以及近兩年比較流行的SpringFrameWork的后續產品 Spring MVC與Apache的開源項目MyBatis。使用這些開源框架,使得Web開發的效率和質量得到大大提升。本書詳細介紹了Spring MVC和MyBatis框架的基礎知識及核心技術。通過學習框架的基礎理論和API的概念,讀者可以由淺入深地學習框架的整體技術,從而達到學以致用的目的。在掌握理論知識的同時,通過實例的編寫和練習,使得讀者對知識點的理解和掌握更加透徹。最后通過一個企業級項目的實戰編寫,從軟件需求分析、功能設計、數據庫創建,到開發環境搭建及編碼開發,讓讀者掌握整合框架的實際開發技術,為以后的相關工作和學習打下堅實的實戰基礎。
本書特色
1.內容基礎、全面,涵蓋Spring MVC和MyBatis的核心技術知識本書從 Spring MVC和MyBatis的依賴環境,到其配置文件、API應用,以及各項參數的釋義都給予了詳細講解,讓讀者輕松并快速掌握框架的開發知識體系。對于部分核心知識點,還會通過剖析源碼的方式,讓讀者深入理解框架的設計理念,從深層次上理解框架的理論。
2.知識點伴隨鮮活的實例練習,通過實際動手來實現功能本書對于每一個知識點,都會通過具體實例的編寫來向讀者展示該知識點的使用技巧和方式,讓讀者既掌握基礎的理論知識,又學習到知識點在具體項目中的實際應用技巧。
3.獨特的大型項目跟蹤式講解與開發本書在介紹完Spring MVC與MyBatis的基礎知識及實例后,還增加了項目實戰的章節。不同于以往的教程,這里的項目以實際需求為起點,通過軟件的需求分析、功能設計、數據庫設計及環境的搭建,到最后的開發,一步一步讓讀者體驗整個Web項目從提出設想到最終交付的全部過程。讀者在大型項目的跟蹤式學習中,不僅可以深切體會如何進行 Spring MVC與MyBatis的項目整合開發,還可以掌握整個Web項目的所有開發流程。
本書內容及體系結構
第1篇 準備工作本篇
對Java開發的環境搭建、編譯器的選擇與安裝都做了詳細的講解,為讀者后面的開發學習做好準備。
第2篇 MyBatis技術入門
本篇通過分析傳統JDBC開發模式的缺陷,引出MyBatis框架誕生的背景及特點。然后通過一個入門程序讓讀者對MyBatis有一個大致的了解,繼而展開對MyBatis配置文件、高級映射及緩存結構等知識點的講解。最后講解了MyBatis與Spring的整合開發,為后期與 Spring MVC的整合做準備。
第3篇 Spring MVC技術入門
本篇通過 Spring MVC技術背景的介紹,以及與Struts框架的對比,讓讀者對 Spring MVC在項目中扮演的角色有一個大致的了解。然后通過圖文解說的方式,詳細介紹了 Spring MVC的整個運行體系和所包含的架構模塊,讓讀者帶著模塊化的思想去學習整個框架,而不是盲人摸象。在讀者了解了技術背景及大體框架結構后,再逐步講解 Spring MVC的環境搭建、處理器映射器和適配器、前端控制器和視圖解析器、請求映射與參數綁定、Validation校驗、異常處理和攔截器等知識點。
第4篇 Spring MVC與MyBatis項目實戰
本篇通過一個水果網絡銷售平臺項目,讓讀者從一個項目負責人和開發人員的角度,全面剖析項目的整個開發流程,廣到這個項目的功能設計、框架規劃,細到某個具體模塊的詳細編碼實現,讓讀者從宏觀到微觀全面掌握 Spring MVC與MyBatis整合的實戰項目開發流程。
本書讀者對象Java軟件開發工程師想要全面了解 Spring MVC與MyBatis知識點的人員想要學習開發Web實戰項目的人員各計算機、軟件專業的在校學生其他對Web開發感興趣的各類人員
朱要光,90后新銳程序員,熱愛鉆研計算機技術,追求極客精神。本科期間熱衷于算法和數據結構的學習,多次參加ACM算法大賽并獲得若干單人以及團隊獎項。參與設計與開發的擁有軟件著作權的協同畫板掌上供電軟件,獲得第八屆大學生計算機設計大賽二、三等獎的殊榮。2015年獲得CSDN個人博客準專家稱號,擁有大量原創博文,博客訪問量達百萬人次。
第1篇 準備工作
第1章 開發環境搭建2
1.1 JDK安裝與配置2
1.1.1 下載JDK3
1.1.2 安裝JDK4
1.1.3 JDK環境變量配置4
1.1.4 驗證Java環境是否搭建成功6
1.2 MyEclipse的安裝與使用7
1.2.1 MyEclipse的下載7
1.2.2 MyEclipse的配置8
1.3 第一個Java類10
第2篇 MyBatis技術入門
第2章 了解MyBatis14
2.1 傳統JDBC開發模式的缺陷14
2.1.1 JDBC連接數據庫模式分析14
2.1.2 JDBC操作SQL語句模式分析16
2.1.3 待優化的問題17
2.2 初識MyBatis18
2.2.1 MyBatis介紹18
2.2.2 MyBatis整體架構18
2.2.3 MyBatis運行流程21
第3章 搭建MyBatis工作環境23
3.1 入門程序搭建與測試23
3.1.1 數據庫準備23
3.1.2 搭建工程環境24
3.1.3 編寫日志輸出環境配置文件26
3.1.4 編寫數據庫連接池配置文件27
3.1.5 編寫SQL映射配置文件29
3.1.6 編寫數據交互類與測試用例30
3.2 入門程序數據操作33
3.2.1 模糊查詢樣例33
3.2.2 新增樣例34
3.2.3 刪除與修改樣例37
第4章 MyBatis配置文件詳解40
4.1 SqlMapConfig配置文件詳解40
4.1.1 properties配置分析43
4.1.2 setting配置分析44
4.1.3 typeAliases配置分析48
4.1.4 typeHandlers配置分析50
4.1.5 objectFactory配置分析53
4.1.6 plugins配置分析56
4.1.7 environments配置分析58
4.1.8 mappers配置分析60
4.2 Mapper映射文件61
4.2.1 映射文件總體介紹61
4.2.2 Mapper配置輸入映射64
4.2.3 Mapper輸入映射樣例65
4.2.4 Mapper配置輸出映射68
4.2.5 Mapper自動映射75
4.2.6 Mapper配置動態SQL語句76
第5章 MyBatis高級映射80
5.1 建立測試數據模型80
5.1.1 業務模型分析80
5.1.2 根據業務創建測試表81
5.2 一對一查詢83
5.2.1 使用resultType實現83
5.2.2 使用resultMap實現85
5.3 一對多查詢87
5.3.1 實體類定義與Mapper編寫87
5.3.2 測試查詢結果89
5.4 多對多查詢90
5.4.1 實體類定義與Mapper編寫91
5.4.2 測試查詢結果94
5.5 延遲加載96
5.5.1 Mapper映射配置編寫96
5.5.2 測試延遲加載效果97
5.6 Mapper動態代理99
5.6.1 Mapper代理實例編寫99
5.6.2 測試動態代理效果100
第6章 MyBatis緩存結構102
6.1 一級查詢緩存103
6.1.1 一級緩存原理闡述103
6.1.2 一級緩存測試示例103
6.2 二級查詢緩存105
6.2.1 二級緩存原理闡述105
6.2.2 二級緩存測試實例106
6.2.3 驗證二級緩存清空108
第7章 MyBatis技術拓展110
7.1 MyBatis與Spring的整合110
7.1.1 創建測試工程110
7.1.2 引入依賴jar包111
7.1.3 編寫Spring配置文件112
7.1.4 編寫MyBatis配置文件114
7.1.5 編寫Mapper及其他配置文件115
7.1.6 編寫DAO層116
7.1.7 編寫Service測試類117
7.1.8 使用Mapper代理118
7.2 MyBatis逆向工程121
7.2.1 逆向工程配置121
7.2.2 逆向數據文件生成類123
7.2.3 運行測試方法124
7.2.4 測試生成的數據文件126
第3篇 Spring MVC技術入門
第8章 Spring MVC132
8.1 Spring MVC基礎133
8.1.1 Spring體系結構133
8.1.2 Spring MVC請求流程134
8.2 Spring MVC與Struts的區別135
8.3 Spring MVC環境搭建136
8.3.1 依賴jar包的添加和前端控制器配置137
8.3.2 編寫核心配置文件springmvc.xml138
8.3.3 編寫Handler處理器與視圖140
第9章 處理器映射器和適配器144
9.1 非注解的處理器映射器和適配器144
9.1.1 非注解的處理器映射器144
9.1.2 非注解的處理器適配器146
9.2 注解的處理器映射器和適配器151
第10章 前端控制器和視圖解析器154
10.1 前端控制器源碼分析154
10.2 視圖解析器162
10.2.1 AbstractCachingViewResolver162
10.2.2 UrlBasedViewResolver162
10.2.3 InternalResourceViewResolver163
10.2.4 XmlViewResolver163
10.2.5 BeanNameViewResolver164
10.2.6 ResourceBundleViewResolver165
10.2.7 FreeMarkerViewResolver與VelocityViewResolver167
10.2.8 ViewResolver鏈168
第11章 請求映射與參數綁定169
11.1 Controller與RequestMapping169
11.2 參數綁定過程173
11.2.1 簡單類型參數綁定174
11.2.2 包裝類型參數綁定176
11.2.3 集合類型參數綁定182
第12章 Validation校驗187
12.1 Bean Validation數據校驗188
12.1.1 搭建validation校驗框架188
12.1.2 添加校驗注解信息189
12.1.3 測試validation校驗效果191
12.1.4 validation注解全面介紹192
12.2 分組校驗193
12.2.1 設置分組校驗193
12.2.2 測試分組校驗效果195
12.3 Spring Validator接口校驗195
12.3.1 Validator接口的使用195
12.3.2 Validator接口驗證測試199
第13章 異常處理和攔截器201
13.1 全局異常處理器201
13.2 攔截器定義與配置207
13.2.1 HandlerInterceptor接口207
13.2.2 WebRequestInterceptor接口209
13.2.3 攔截器鏈210
13.2.4 攔截器登錄控制213
第14章 Spring MVC其他操作217
14.1 利用 Spring MVC上傳文件217
14.2 利用Spring MVC實現JSON交互223
14.3 利用Spring MVC實現RESTful風格231
14.3.1 RESTful231
14.3.2 使用Spring MVC實現RESTful風格232
14.3.3 靜態資源訪問問題235
第4篇 Spring MVC與MyBatis項目實戰
第15章 項目分析與建模238
15.1 項目需求分析238
15.1.1 系統主要使用者業務關系分析239
15.1.2 系統主要使用者經濟關系分析239
15.2 項目UML圖例240
15.2.1 UML圖的類型240
15.2.2 繪制系統用例圖241
15.2.3 繪制系統模塊圖241
15.3 項目數據庫建模242
15.3.1 系統數據關系分析243
15.3.2 系統主要表設計243
第16章 開發框架環境搭建250
16.1 搭建工程的Maven環境250
16.1.1 Maven下載配置250
16.1.2 創建Maven工程252
16.1.3 為工程添加依賴254
16.2 開發框架基礎配置與測試259
16.2.1 開發框架環境配置259
16.2.2 測試環境配置結果266
第17章 核心代碼以及登錄模塊編寫277
17.1 各層核心基礎代碼277
17.1.1 編寫DAO層核心代碼277
17.1.2 編寫Controller層核心代碼279
17.2 登錄注冊管理模塊280
17.2.1 編寫登錄模塊280
17.2.2 編寫登錄驗證服務283
17.2.3 編寫注冊模塊288
17.2.4 編寫注冊服務290
第18章 零售商及貨物管理模塊292
18.1 零售商管理模塊292
18.1.1 添加主導航欄292
18.1.2 編寫基礎Controller及實體類294
18.1.3 創建Mapper映射文件295
18.1.4 編寫DAO層處理邏輯297
18.1.5 編寫Service層處理邏輯297
18.1.6 完善Controller類298
18.1.7 編寫相關視圖頁面300
18.1.8 分頁操作邏輯編寫302
18.1.9 測試分頁效果305
18.1.10 編寫編輯功能307
18.1.11 測試編輯功能310
18.1.12 編寫刪除功能311
18.1.13 測試刪除功能312
18.1.14 編寫添加功能312
18.1.15 測試添加功能314
18.2 貨物信息管理模塊315
18.2.1 導航欄與Controller基礎準備315
18.2.2 創建Mapper映射文件316
18.2.3 編寫DAO層處理邏輯318
18.2.4 編寫Service層處理邏輯319
18.2.5 完善Controller類320
18.2.6 編寫相關視圖頁面322
18.3 附屬品管理模塊325
18.3.1 導航欄與Controller基礎準備325
18.3.2 創建Mapper映射文件326
18.3.3 完善Controller類327
18.3.4 編寫相關視圖頁面329
18.3.5 驗證頁面效果331
18.3.6 批量刪除實現332
第19章 購銷合同管理模塊335
19.1 購銷合同管理模塊335
19.1.1 購銷合同Mapper實現335
19.1.2 編寫DAO層處理邏輯341
19.1.3 編寫Service層處理邏輯342
19.1.4 編寫Controller基礎類344
19.1.5 編寫相關視圖頁面345
19.2 關聯零售商347
19.2.1 編寫添加邏輯347
19.2.2 實現零售商關聯浮出框349
19.2.3 測試零售商關聯354
19.3 關聯水果貨物354
19.3.1 貨物關聯展示與浮出框編寫354
19.3.2 勾選貨物功能編寫358
19.3.3 測試貨物關聯360
19.4 完善購銷合同360
19.4.1 合同關聯信息合并提交360
19.4.2 測試合并提交365
19.4.3 合同打印以及刪除實現369
19.5 總結372