本書主要講解在復雜的企業(yè)級應用中通常采用的技術架構,以及如何通過優(yōu)化提升開發(fā)效率。通過重點學習Oracle數(shù)據(jù)庫、Hibernate、Struts2等技術,大家就可以使用SSH技術加上Oracle數(shù)據(jù)庫,快速、高效地開發(fā)出企業(yè)級的應用程序。
1、選取知識點核心實用,以互聯(lián)網(wǎng) 實現(xiàn)終身學習
2、以企業(yè)需求為設計導向,以任務驅動為講解方式
3、以案例為主線組織知識點,以實戰(zhàn)項目來提升技術
4、充分考慮學習者的認知曲線,由淺入深,邊講邊練
肖睿任職于北京課工場教育科技有限公司。課工場是專注互聯(lián)網(wǎng)教育的生態(tài)平臺,匯聚了中國和北美數(shù)百位來自知名互聯(lián)網(wǎng)企業(yè)的行業(yè)大咖,向尋求就業(yè)和技術提升的人群提供直播、錄播、面授等多模式教學場景,并通過遍布全國的線下服務中心提供成熟的學習服務,形成完善的互聯(lián)網(wǎng) 教育解決方案。同時,課工場也為高校、企業(yè)、行業(yè)提供教育技術賦能,依托Transformer智能教育生態(tài)平臺,打造智慧校園、企業(yè)大學、行業(yè)培訓的教育場景,提供一站式教育解決方案。
序言
前言
關于引用作品的版權聲明
第1章Oracle數(shù)據(jù)庫入門 1
任務1 安裝并配置Oracle數(shù)據(jù)庫服務器 2
1.1.1 初識Oracle 2
1.1.2 Oracle體系結構 3
1.1.3 安裝Oracle 5
1.1.4 Windows環(huán)境下啟動Oracle數(shù)據(jù)庫 6
1.1.5 修改Oracle數(shù)據(jù)庫的配置文件 7
1.1.6 使用Client工具連接數(shù)據(jù)庫 7
任務2 了解Oracle數(shù)據(jù)類型以及使用偽列實現(xiàn)分頁查詢 9
1.2.1 字符類型 10
1.2.2 數(shù)值類型 10
1.2.3 日期時間類型 11
1.2.4 LOB類型 12
1.2.5 使用偽列實現(xiàn)分頁查詢 13
任務3 使用SQL語句操作數(shù)據(jù)表 15
1.3.1 使用DDL操作數(shù)據(jù)表 15
1.3.2 使用DML操作數(shù)據(jù)表 17
1.3.3 使用TCL管理事務 21
1.3.4 使用DCL控制權限 22
任務4 使用SQL操作符操作數(shù)據(jù)表 25
1.4.1 使用算術操作符編寫SQL語句 25
1.4.2 使用比較操作符編寫SQL語句 25
1.4.3 使用邏輯操作符編寫SQL語句 25
1.4.4 使用集合操作符編寫SQL語句 25
1.4.5 使用連接操作符編寫SQL語句 27
任務5使用SQL函數(shù)操作數(shù)據(jù)表 27
1.5.1 數(shù)據(jù)類型轉換 27
1.5.2 濾空函數(shù) 29
1.5.3 使用分析函數(shù) 29
本章總結 32
本章練習 33
第2章 操作Oracle數(shù)據(jù)庫 35
任務1 創(chuàng)建表空間、自定義用戶管理 37
2.1.1 創(chuàng)建表空間 37
2.1.2 創(chuàng)建數(shù)據(jù)庫用戶 39
2.1.3 給用戶授予權限 40
任務2 創(chuàng)建、訪問、修改、刪除、使用序列 42
2.2.1 創(chuàng)建序列的語法 42
2.2.2 訪問序列的方式 44
2.2.3 修改序列的命令 44
2.2.4 刪除序列的命令 45
2.2.5 序列應用場景 45
任務3 為員工表創(chuàng)建同義詞 46
2.3.1 同義詞的作用 46
2.3.2 同義詞的分類 46
2.3.3 刪除同義詞 48
任務4 創(chuàng)建員工表索引 49
2.4.1 認識索引 49
2.4.2 創(chuàng)建合適的索引 49
2.4.3 創(chuàng)建索引注意事項 51
2.4.4 使用命令刪除索引 51
2.4.5 重建索引應用場景 51
任務5 創(chuàng)建銷售信息分區(qū)表 52
2.5.1 認識分區(qū)表 52
2.5.2 Oracle提供的分區(qū)方法 53
任務6 為員工表創(chuàng)建視圖、創(chuàng)建數(shù)據(jù)庫鏈 57
2.6.1 認識視圖 57
2.6.2 創(chuàng)建數(shù)據(jù)庫鏈 58
任務7 從Oracle數(shù)據(jù)庫中導入導出數(shù)據(jù) 60
2.7.1 使用Oracle工具imp和exp導入導出數(shù)據(jù) 60
2.7.2 使用第三方工具PL/SQL Developer導入導出數(shù)據(jù) 62
任務8 優(yōu)化SQL語句 64
2.8.1 查詢優(yōu)化產(chǎn)生背景 64
2.8.2 如何編寫高性能的SQL語句 66
本章總結 67
本章練習 68
第3章 Hibernate初體驗 69
任務1 搭建Hibernate環(huán)境 70
3.1.1 Hibernate框架由來 70
3.1.2 為什么選擇Hibernate框架 71
3.1.3 Hibernate與MyBatis的對比 72
3.1.4 搭建Hibernate環(huán)境 72
任務2 使用Hibernate API實現(xiàn)持久化操作 80
3.2.1 根據(jù)主鍵查詢 83
3.2.2 使用Hibernate實現(xiàn)CRUD 86
任務3 Hibernate中Java對象的生命周期 89
3.3.1 Hibernate中持久化對象的生命周期 89
3.3.2 使用Hibernate API轉換對象的狀態(tài) 90
任務4 Hibernate臟檢查及如何刷新緩存 92
3.4.1 什么是臟檢查 92
3.4.2 Session如何刷新緩存 93
任務5 使用Hibernate API更新數(shù)據(jù) 93
本章總結 95
本章練習 96
第4章 HQL查詢語言 97
任務1 使用HQL語句操作數(shù)據(jù)庫 98
4.1.1 編寫HQL語句 98
4.1.2 使用Query對象執(zhí)行HQL語句 100
任務2 在HQL語句中綁定參數(shù) 103
4.2.1 HQL的參數(shù)綁定 103
4.2.2 綁定不同數(shù)據(jù)類型的參數(shù) 105
4.2.3 Hibernate動態(tài)設置查詢參數(shù)的方式 108
4.2.4 使用Hibernate API之uniqueResult( )方法 111
任務3 實現(xiàn)分頁和投影查詢 113
4.3.1 Hibernate分頁查詢API 114
4.3.2 Hibernate投影查詢API 115
任務4 使用MyEclipse反向工程工具 117
本章總結 122
本章練習 122
第5章 配置Hibernate關聯(lián)映射 125
任務1 了解關聯(lián)關系 126
任務2 建立單向多對一關聯(lián)關系 127
5.2.1 配置單向多對一關聯(lián)關系 127
5.2.2 如何持久化多對一關聯(lián)關系的對象 129
任務3 建立雙向一對多關聯(lián)關系 132
5.3.1 配置雙向一對多關聯(lián)關系 133
5.3.2 雙向關聯(lián)的增刪改操作 135
任務4 建立多對多關聯(lián)關系 141
5.4.1 配置單向多對多關聯(lián)關系 142
5.4.2 配置雙向多對多關聯(lián)關系 144
任務5 使用MyEclipse反向工程工具映射關聯(lián)關系 146
任務6 配置查詢加載策略 147
5.6.1 配置類級別的查詢加載策略 148
5.6.2 配置一對多和多對多關聯(lián)的查詢加載策略 150
5.6.3 配置多對一關聯(lián)的查詢加載策略 152
5.6.4 如何配置Open Session In View模式 154
本章總結 156
本章練習 156
第6章 HQL連接查詢與Hibernate注解 159
任務1 使用HQL連接查詢 160
任務2 分組進行數(shù)據(jù)統(tǒng)計 163
6.2.1 HQL查詢語句中常用的聚合函數(shù) 163
6.2.2 編寫HQL分組查詢語句 165
任務3 使用子查詢 167
6.3.1 使用子查詢關鍵字進行查詢結果量化 167
6.3.2 操作集合的函數(shù)或屬性 170
任務4 優(yōu)化查詢性能 171
任務5 使用注解配置持久化類和關聯(lián)關系 173
6.5.1 認識Hibernate注解 173
6.5.2 使用Hibernate注解配置持久化類 173
6.5.3 使用Hibernate注解配置關聯(lián)關系 177
6.5.4 使用MyEclipse反向工程工具生成注解映射 180
本章總結 181
本章練習 181
第7章Struts 2初體驗 183
任務1 Struts 2基礎 184
7.1.1 Struts 2的由來 184
7.1.2 下載Struts 2資源包 185
任務2 在項目中應用Struts 2 186
7.2.1 創(chuàng)建基于Struts 2框架的Web項目 186
7.2.2 編寫Struts 2的入門程序 187
7.2.3 使用Struts 2編寫登錄功能 193
任務3 使用Struts 2訪問Servlet API對象 196
7.3.1 使用解耦的方式訪問Servlet API 196
7.3.2 使用耦合的方式訪問Servlet API 199
任務4 使用Struts 2進行數(shù)據(jù)的校驗 200
任務5 使用Struts 2標簽 201
7.5.1 Struts 2標簽之UI標簽 201
7.5.2 Struts 2標簽之通用標簽 203
本章總結 207
本章練習 207
第8章Struts 2配置 209
任務1 解析Struts 2執(zhí)行過程 210
8.1.1 分析編寫登錄程序步驟 210
8.1.2 Struts 2常用配置文件介紹 214
任務2 配置Action 216
8.2.1 Action工作流程 217
8.2.2 使用method屬性配置Action 218
8.2.3 在Action中調(diào)用動態(tài)方法 219
8.2.4 在Action中使用通配符 220
8.2.5 配置默認的Action 221
任務3 配置Result結果類型 222
8.3.1 結果類型分類 222
8.3.2 配置動態(tài)結果 224
8.3.3 配置全局結果 225
本章總結 228
本章練習 228
第9章 OGNL表達式 229
任務1 初識OGNL 230
任務2 了解OGNL在框架中的作用 231
9.2.1 OGNL處理流入數(shù)據(jù) 231
9.2.2 OGNL處理流出數(shù)據(jù) 232
9.2.3 值棧的作用 232
任務3 理解數(shù)據(jù)類型轉換 233
9.3.1 類型轉換的原因 233
9.3.2 Struts 2提供的內(nèi)置類型轉換器 234
9.3.3 編寫自定義類型轉換器 237
9.3.4 類型轉換錯誤的處理方法 239
任務4 使用OGNL表達式操作數(shù)據(jù) 241
9.4.1 OGNL表達式語言的強大作用 241
9.4.2 使用OGNL訪問ActionContext中的數(shù)據(jù) 243
9.4.3 使用OGNL查看ActionContext中的數(shù)據(jù) 245
9.4.4 OGNL表達式在Struts 2標簽中的應用 246
任務5 使用URL標簽和日期標簽簡化代碼開發(fā) 247
9.5.1 Struts 2標簽之URL標簽 247
9.5.2 Struts 2標簽之日期標簽 248
本章總結 250
本章練習 251
第10章 Struts 2攔截器 253
任務1 分析Struts 2的架構 254
任務2 配置Struts 2攔截器 256
10.2.1 攔截器的作用 256
10.2.2 分析攔截器的工作原理 257
10.2.3 配置攔截器 259
10.2.4 Struts 2的內(nèi)置攔截器 261
10.2.5 配置Struts 2內(nèi)置攔截器棧 262
10.2.6 實現(xiàn)自定義攔截器并進行配置 263
任務3 使用Struts 2框架實現(xiàn)文件上傳功能 266
10.3.1 下載上傳依賴包 266
10.3.2 使用commons-fileupload實現(xiàn)文件上傳 266
10.3.3 使用commons-fileupload實現(xiàn)多文件上傳 269
任務4 使用Struts 2框架實現(xiàn)文件下載功能 270
10.4.1 配置stream結果類型 271
10.4.2 Struts 2實現(xiàn)文件下載的步驟 271
本章總結 274
本章練習 274
第11章 SSH框架整合 277
任務1 使用SSH搭建Web應用 278
11.1.1 認識SSH 278
11.1.2 分析整合SSH的方案 278
任務2 將Spring和Hibernate進行整合 280
11.2.1 配置SessionFactory的方式 280
11.2.2 使用HibernateTemplate API簡化DAO層 282
任務3 編寫業(yè)務層并添加聲明式事務管理 285
11.3.1 編寫Service業(yè)務層接口 285
11.3.2 添加聲明式事務管理 286
任務4 將Spring和Struts 2進行整合 288
任務5 修改web.xml配置 291
11.5.1 在web.xml中配置ContextLoaderListener 291
11.5.2 在web.xml中配置OpenSessionInViewFilter 291
任務6 使用HibernateCallback開發(fā)自定義功能 296
任務7 Spring和Struts 2整合進階 297
任務8 使用注解整合SSH框架 300
11.8.1 使用Hibernate注解配置ORM映射 300
11.8.2 使用Spring注解進行SSH框架整合 302
11.8.3 使用Spring注解配置聲明式事務管理 304
本章總結 305
本章練習 306
附錄 309
附錄1 安裝Oracle 309
附錄2 配置數(shù)據(jù)庫 313
附錄3 單行函數(shù) 320
附錄4 卸載數(shù)據(jù)庫 321
附錄5 創(chuàng)建數(shù)據(jù)庫連接 323