內容簡介
《Java EE核心框架實戰》旨在提高讀者的學習效率,增強其項目實戰能力。為此,《Java EE核心框架實戰》摒棄瞭軟件公司中不常用或不實用的技術,而是采用近200個開發案例,為讀者講解瞭開發商業軟件的必備知識,幫組讀者進行“精要”式的學習,汲取JavaEE的思想,正確地進行項目實戰。
《Java EE核心框架實戰》涵蓋瞭MyBatis 3、Struts 2、Ajax+JSON、Spring 4 MVC、Hibernate 4、Spring 4、WebLogic+EJB3等主流JavaEE框架的核心開發技術,介紹瞭MVC框架的原理實現、上傳、下載、數據驗證、國際化、多模塊分組開發、轉發/重定嚮;JSON的解析;將Ajax及JSON和MVC框架進行整閤開發;ORM框架的CURD及MyBatis和Hibernate中映射文件的使用;Spring 4中的IOC及AOP技術;企業中常使用的Struts 2、Spring 4 MVC、MyBatis 3、Hibernate 4、Spring 4整閤開發,以及通過WebLogic+EJB3深入學習JavaEE的體係結構等實用內容。
《Java EE核心框架實戰》語言簡潔,示例豐富,適閤具有一定Java編程基礎的讀者閱讀,以及使用Java進行軟件開發、測試的從業人員閱讀。
作者簡介
高洪岩,畢業於東北電力大學計算機科學與技術專業,獲得軟件工程碩士學位。曾任職於大連東軟軟件公司、北京中軟、中國海洋石油集團、中國石化,現工作於教育與技術之間,喜歡分享,樂於學習。
內頁插圖
目錄
目 錄
第1章 MyBatis 3操作數據庫 1
1.1 MyBatis介紹 1
1.2 MyBatis操作數據庫的步驟 2
1.2.1 使用XML配置文件創建SqlSessionFactory對象 3
1.2.2 SqlSessionFactoryBuilder和SqlSessionFactory類的結構 4
1.2.3 使用MyBatis Generator工具逆嚮 5
1.2.4 使用SqlSession對象在MsSql數據庫中新建記錄 7
1.2.5 使用SqlSession對象在Oracle數據庫中新建記錄 10
1.3 使用MyBatis針對3種數據庫(Oracle、MSSQL和MySQL)實現CURD 10
1.3.1 針對Oracle的CURD 10
1.3.2 針對MSSQL的CURD 17
1.3.3 針對MySQL的CURD 20
1.4 MyBatis核心對象的生命周期與封裝 22
1.4.1 創建GetSqlSessionFactory.java類 23
1.4.2 創建GetSqlSession.java類 24
1.4.3 創建DBOperate.java類 25
1.4.4 創建userinfoMapping.xml映射文件 25
1.4.5 創建連接數據庫的mybatis-config.xml配置文件 26
1.4.6 創建名為test的Servlet對象 26
1.4.7 添加記錄及異常迴滾的測試 27
1.4.8 刪除記錄 29
1.4.9 更改記錄 30
1.4.10 查詢單條記錄 31
1.4.11 查詢多條記錄 32
第2章 MyBatis 3常用技能 33
2.1 MyBatis 3的SQL映射文件 33
2.2 連接DB數據庫的參數來自於Properties對象 33
2.3
標簽 34
2.4 標簽 35
2.5 將SQL語句作為字符串變量傳入 37
2.6 動態SQL的使用 38
2.6.1 插入null值時的處理第1種方法——jdbcType 38
2.6.2 插入null值時的處理第2種方法—— 39
2.6.3 標簽的使用 40
2.6.4 標簽的使用 42
2.6.5 標簽的使用 43
2.7 插入超大的字符串文本內容 45
2.8 分頁 46
第3章 Struts 2必備開發技能 48
3.1 使用Struts 2進行登錄功能的開發 48
3.1.1 為什麼要使用MVC 48
3.1.2 準備JAR文件 54
3.1.3 創建Web項目、添加jar文件及配置web.xml文件 55
3.1.4 創建控製層Controller文件——Login.java 56
3.1.5 創建業務邏輯層Model文件——UserinfoService.java 57
3.1.6 創建視圖層View文件——login.jsp 57
3.1.7 添加核心配置文件struts.xml及解釋 58
3.1.8 添加ok.jsp和no.jsp登錄結果文件 59
3.1.9 運行項目 59
3.1.10 Struts 2的攔截器 60
3.1.11 Struts 2的數據類型自動轉換 64
3.2 MVC框架的開發模型 71
3.2.1 基礎知識準備1——解析並創建xml文件 71
3.2.2 基礎知識準備2——Java的反射 74
3.2.3 實現MVC模型——自定義配置文件 77
3.2.4 實現MVC模型——ActionMapping.java封裝信息 78
3.2.5 實現MVC模型——ResultMapping.java以封裝信息 78
3.2.6 實現MVC模型——管理映射信息的ActionMappingManager.java對象 79
3.2.7 實現MVC模型——創建反射Action的ActionManager.java對象 81
3.2.8 實現MVC模型——創建核心控製器ActionServlet.java 81
3.2.9 實現MVC模型——創建Action接口及控製層Controller實現類 83
3.2.10 實現MVC模型——創建視圖層V對應的JSP文件 84
3.2.11 實現MVC模型——在web.xml中配置核心控製器 86
3.2.12 實現MVC模型——運行結果 86
3.3 Struts 2的刷新驗證功能 86
3.3.1 Action接口 87
3.3.2 Validateable和ValidationAware接口 88
3.3.3 TextProvider和LocaleProvider接口 88
3.3.4 使用ActionSupport實現有刷新的驗證 89
3.4 對Struts 2有刷新驗證的示例進行升級 91
3.4.1 加入xml配置來屏蔽自動生成的table/tr/td代碼 92
3.4.2 解決“齣錯信息不能自動顯示”的問題 93
3.5 用標簽顯示全部齣錯信息 96
3.6 齣錯信息進行傳參及國際化 98
3.6.1 創建info_en_US.properties和info_zh_CN.properties屬性文件 98
3.6.2 在JSP文件中顯示國際化的靜態文本 101
3.6.3 在JSP文件中顯示國際化的靜態文本時傳遞參數 102
3.6.4 在Action中使用國際化功能 103
3.7 用實體類封裝URL中的參數——登錄功能的URL封裝 105
3.8 Struts 2中的轉發操作 107
3.8.1 Servlet中的轉發操作 107
3.8.2 Struts 2中的轉發操作 107
3.9 由Action重定嚮到Action——參數 109
3.9.1 何種情況下使用重定嚮 109
3.9.2 新建起始控製層Login.java 109
3.9.3 新建目的控製層List.java 110
3.9.4 在struts.xml文件中配置重定嚮的重點 110
3.9.5 新建顯示列錶的JSP文件 111
3.10 由Action重定嚮到Action——有參數 112
3.10.1 何種情況下需要重定嚮傳遞參數 112
3.10.2 新建起始控製層Login.java文件 112
3.10.3 更改struts.xml配置文件 113
3.10.4 新建目的控製層List.java文件 113
3.10.5 用JSTL和EL在JSP文件中輸齣數據 114
3.11 讓Struts 2支持多模塊多配置文件開發 115
3.11.1 新建4個模塊的控製層 115
3.11.2 新建3個模塊的配置文件 116
3.11.3 使用include標記導入多個配置文件 118
3.11.4 創建各模塊使用的JSP文件 118
3.11.5 運行各模塊的結果 119
3.12 在Action中有多個業務方法時的處理 120
3.12.1 第一種實現方式——通過url嘆號“!”參數 120
3.12.2 第二種實現方式——在action標記中加入method屬性 122
3.13 自定義全局result 124
3.13.1 新建全局result實例和控製層代碼 124
3.13.2 聲明全局result對象 125
3.13.3 部署項目並運行 126
3.14 在Action中使用Servlet的API(緊耦版) 126
3.14.1 將數據放到不同的作用域中 126
3.14.2 從不同作用域中取值 128
3.15 在Action中使用Servlet的API(鬆耦版) 128
3.15.1 新建控製層 128
3.15.2 新建JSP視圖 129
3.16 Session與Cookie在request與response對象中的運行機製 130
3.17 在MyEclipse中使用Web Service 135
第4章 Struts 2文件的上傳與下載 141
4.1 使用Struts 2進行單文件上傳 141
4.1.1 Struts 2上傳功能的底層依賴 141
4.1.2 新建上傳文件的JSP文件 141
4.1.3 新建上傳文件的控製層Register.java文件 142
4.1.4 Action中File實例的命名規則 143
4.1.5 設置上傳文件的大小 143
4.1.6 設計struts.xml配置文件 143
4.1.7 成功上傳單個文件 144
4.2 使用Struts 2進行多文件上傳 145
4.2.1 新建上傳多個文件的JSP 145
4.2.2 設計上傳的控製層代碼 145
4.2.3 成功上傳多個文件 147
4.3 使用屬性驅動形式的文件上傳 148
4.3.1 創建上傳多個文件的JSP 148
4.3.2 設計上傳文件的控製層 149
4.3.3 新建上傳文件的封裝類 150
4.3.4 將JSP文件中s:file標簽的name屬性進行更改 151
4.3.5 以屬性驅動方式成功上傳多個文件 152
4.4 用Struts 2實現下載文件的功能(支持中文文件名) 153
4.4.1 新建下載文件的JSP文件 153
4.4.2 新建下載文件的控製層文件 154
4.4.3 更改struts.xml配置文件 155
4.4.4 成功下載中文文件名的文件 155
第5章 JSON、Ajax、jQuery與Struts 2聯閤使用 156
5.1 JSON介紹 156
5.2 用JSON創建對象 157
5.2.1 用JSON創建對象的語法格式 157
5.2.2 在JSP中用JSON創建對象 157
5.2.3 運行結果 157
5.3 用JSON創建字符串的限製 158
5.3.1 需要轉義的特殊字符 158
5.3.2 在JSP中對JSON特殊字符進行轉義 158
5.3.3 運行結果 159
5.4 用JSON創建數字類型的語法格式 159
5.4.1 在JSP中用JSON創建數字類型 160
5.4.2 運行結果 160
5.5 用JSON創建數組對象的語法格式 160
5.5.1 在JSP中用JSON創建數組對象 161
5.5.2 運行結果 161
5.6 用JSON創建嵌套的對象類型 161
5.7 將對象轉換成JSON字符串 162
5.7.1 什麼情況下需要將對象轉換成JSON字符串 162
5.7.2 在JSP中用stringify方法將對象轉換成JSON字符串 163
5.8 將對象轉換成JSON字符串提交到Action並解析(以post方式提交) 164
5.8.1 在JSP中創建JSON和Ajax對象 164
5.8.2 用Action控製層接收通過Ajax傳遞過來的JSON字符串 165
5.8.3 運行結果 166
5.8.4 在控製颱輸齣的數據 166
5.9 將對象轉換成JSON字符串提交到Action並解析(以get方式提交) 167
5.9.1 新建創建JSON字符串的JSP文件 167
5.9.2 新建接收JSON字符串的Action控製層 168
5.9.3 運行結果 168
5.9.4 在控製颱輸齣的數據 169
5.10 將數組轉換成JSON字符串提交到Action並解析(以get和post方式提交) 169
5.10.1 在服務器端用get方法解析JSON字符串 171
5.10.2 在服務器端用post方法解析JSON字符串 171
5.10.3 運行結果 172
5.10.4 在控製颱輸齣的數據 172
5.11 使用Ajax調用Action並生成JSON再傳遞到客戶端(以get和post方式提交) 173
5.11.1 新建具有Ajax提交功能的JSP 173
5.11.2 在Action控製層創建List中存放的String 176
5.11.3 在Action控製層創建List中存放的Bean 177
5.11.4 在Action控製層創建Map中存放的String 178
5.11.5 在Action控製層創建Map中存放的Bean 178
5.11.6 單擊不同的button按鈕調用不同的Action 179
5.12 jQuery、JSON和Struts 2 181
5.12.1 jQuery框架的Ajax功能介紹 181
5.12.2 用jQuery的Ajax功能調用遠程action(返迴結果) 181
5.12.3 jQuery的Ajax方法的結構 183
5.12.4 用jQuery的Ajax功能調用遠程action(有返迴結果) 184
5.12.5 用jQuery的Ajax功能調用遠程action並且傳遞JSON格式參數(有返迴值) 185
5.12.6 用jQuery解析從action返迴List中存放String的JSON字符串 188
第6章 Spring 4 MVC實用開發 191
6.1 Spring 4 MVC介紹 191
6.1.1 Spring 4 MVC核心控製器 191
6.1.2 基於注解的Spring 4 MVC開發 192
6.2 Spring 4 MVC的第一個登錄測試 193
6.2.1 添加Spring 4 MVC的依賴jar文件 193
6.2.2 在web.xml中配置核心控製器 193
6.2.3 新建springMVC-servlet.xml配置文件 193
6.2.4 新建相關的JSP文件 194
6.2.5 新建控製層Java類文件 195
6.2.6 部署項目並運行 195
6.2.7 第一個示例的總結 196
6.2.8 Spring更加方便的參數獲取方法 196
6.3 執行Controller控製層與限製提交的method方式 197
6.3.1 新建控製層ListUsername.java文件 197
6.3.2 新建登錄及顯示數據的JSP文件 198
6.3.3 部署項目並測試 199
6.4 解決多人開發路徑可能重復的問題 200
6.4.1 錯誤的情況 200
6.4.2 解決辦法 201
6.5 在控製層中使用指定方式處理get或post提交方式 203
6.5.1 控製層代碼 203
6.5.2 新建JSP文件並運行 204
6.6 控製層重定嚮到控製層——參數傳遞 205
6.6.1 新建控製層Java文件 205
6.6.2 創建JSP文件並運行項目 206
6.7 控製層重定嚮到控製層——有參數傳遞 206
6.7.1 創建兩個控製層Java文件 207
6.7.2 部署項目並運行 207
6.8 匹配URL路徑執行指定Controller 208
6.8.1 新建控製層文件 208
6.8.2 部署項目並運行 209
6.9 在服務器端獲取JSON字符串並解析——方式1 210
6.9.1 在web.xml中配置字符編碼過濾器 210
6.9.2 新建JSP文件 211
6.9.3 新建控製層Java文件 212
6.9.4 添加依賴的jar包文件 212
6.9.5 運行項目 213
6.10 在服務器端獲取JSON字符串並解析——方式2 213
6.10.1 新建封裝JSON對象屬性的實體類 213
6.10.2 新建控製層 214
6.10.3 在配置文件中添加注解 214
6.10.4 新建JSP文件 215
6.10.5 添加jacksonJSON解析處理類庫並運行 215
6.10.6 解析不同格式的JSON字符串示例 216
6.11 將URL中的參數轉成實體的示例 218
6.11.1 新建控製層文件 218
6.11.2 新建登錄用途的JSP文件 219
6.11.3 在web.xml中注冊編碼過濾器 219
6.11.4 運行結果 219
6.12 在控製層傳迴JSON對象示例 220
6.12.1 新建控製層文件 220
6.12.2 新建JSP文件 220
6.12.3 部署項目並運行 222
6.13 在控製層傳迴JSON字符串示例 222
6.13.1 新建控製層文件 222
6.13.2 新建JSP文件及在配置文件中注冊utf——8編碼處理 223
6.13.3 運行項目 224
6.14 在控製層獲取HttpServletRequest和HttpServletResponse對象 224
6.14.1 新建控製層 224
6.14.2 JSP文件中的EL代碼及運行結果 225
6.14.3 直接使用HttpServletResopnse對象輸齣響應字符 225
6.15 通過URL參數訪問指定的業務方法 227
6.15.1 新建控製層文件List.java 227
6.15.2 運行結果 227
6.16 Spring 4 MVC單文件上傳——寫法1 228
6.16.1 新建控製層 228
6.16.2 在配置文件springMVC-servlet.xml中聲明上傳請求 229
6.16.3 創建前颱JPS文件 229
6.16.4 運行結果 230
6.17 Spring 4 MVC單文件上傳——寫法2 230
6.18 Spring 4 MVC多文件上傳 231
6.18.1 新建控製層及JSP文件 231
6.18.2 運行結果 232
6.19 Spring 4 MVC支持下載文件名為中文的文件 232
6.20 控製層返迴List對象及實體的結果 233
6.20.1 新建控製層文件 233
6.20.2 新建JSP文件 234
6.20.3 更改springMVC-servlet.xml配置文件 234
6.20.4 運行結果 235
6.21 控製層ModelMap對象 236
6.21.1 新建控製層 236
6.21.2 JSP文件代碼 236
6.21.3 運行結果 237
6.22 對Spring 4 MVC提交的錶單進行手動數據驗證 237
6.22.1 創建控製層文件 237
6.22.2 創建JSP文件 238
6.22.3 運行結果 238
第7章 Spring 4 MVC必備知識 239
7.1 web.xml中的不同配置方法 239
7.1.1 將配置文件存放於src路徑中 239
7.1.2 指定存放路徑 240
7.1.3 指定多個配置文件 240
7.2 路徑中添加通配符的功能 241
7.3 Service業務邏輯層在Controller中進行注入 241
7.3.1 新建業務邏輯層 241
7.3.2 創建控製層文件 242
7.3.3 設計springMVC-servlet.xml配置文件 242
7.3.4 運行結果 242
7.3.5 多個實現類的情況 243
7.4 對象ModelAndView的使用 244
7.4.1 創建控製層及JSP文件 244
7.4.2 程序運行結果 244
7.5 控製層返迴void數據的情況 245
7.5.1 創建控製層及index.jsp文件 245
7.5.2 更改配置文件 246
7.5.3 部署項目並運行程序 246
7.6 使用Spring 4 MVC中的注解來操作HttpSession中的對象 247
7.6.1 創建控製層文件PutGetSession.java 247
7.6.2 創建顯示不同作用域中值的JSP文件 247
7.6.3 部署項目並運行程序 248
第8章 Spring 4 MVC+MyBatis 3+Spring 4整閤 249
8.1 準備Spring 4的jar包文件 249
8.2 準備MyBatis的jar包文件 250
8.3 準備MyBatis 3與Spring 4整閤的jar文件 250
8.4 創建Web項目 250
8.5 配置web.xml文件 251
8.6 配置springMVC-servlet.xml文件 252
8.7 配置MyBatis配置文件 252
8.8 創建MyBatis與映射有關文件 253
8.9 配置applicationContext.xml文件 254
8.10 創建DAO對象 255
8.11 創建Service對象 256
8.12 創建Controller對象 257
8.13 測試整閤效果 258
8.14 迴滾的測試 258
第9章 用Hibernate 4操作數據庫 260
9.1 Hibernate概述與優勢 260
9.2 持久層與持久化與ORM 261
9.3 用MyEclipse開發第一個Hibernate示例 262
9.3.1 用MyEclipse Database Explorer工具連接Oracle 11g數據庫 263
9.3.2 創建一個支持Hibernate4環境的Web項目 265
9.3.3 對數據錶進行Hibernate逆嚮工程 267
9.3.4 逆嚮工程後的項目orm結構 270
9.3.5 使用Hibernate進行持久化 273
第10章 Hibernate 4核心技能 274
10.1 Configuration介紹 274
10.2 SessionFactory介紹 275
10.3 Session介紹 275
10.4 使用Session實現CURD操作 275
10.4.1 Session操作目標錶USERINFO 276
10.4.2 逆嚮工程後的項目結構 276
10.4.3 新建添加記錄的Servlet 277
10.4.4 新建查詢記錄的Servlet 278
10.4.5 新建更改記錄的Servlet 279
10.4.6 新建刪除記錄的Servlet 280
10.5 在Hibernate中使用JNDI技術 281
10.5.1 備份Tomcat/conf路徑下的配置文件 281
10.5.2 更改配置文件context.xml 281
10.5.3 更改配置文件web.xml 281
10.5.4 添加Hibernate框架配置的關鍵步驟 282
10.5.5 逆嚮工程 282
10.5.6 支持JNDI的hibernate.cfg.xml配置文件內容 282
10.5.7 創建查詢數據的Servlet 283
10.5.8 部署項目並驗證結果 283
10.6 緩存與實體狀態 283
10.6.1 Hibernate的OID與緩存 283
10.6.2 Hibernate中的對象狀態:瞬時狀態、持久化狀態和遊離狀態 285
10.7 雙嚮一對多在MyEclipse中的實現 285
10.7.1 創建主錶MAIN 285
10.7.2 創建子錶SUB 285
10.7.3 添加主外鍵約束對象 286
10.7.4 設置主外鍵關係 286
10.7.5 逆嚮主從錶外鍵關係 287
10.7.6 集閤與多對一 288
10.7.7 新建主錶main數據 289
10.7.8 新建子錶SUB數據 290
10.7.9 刪除子錶SUB數據 292
10.7.10 刪除主錶MAIN數據 293
10.8 Hibernate備忘知識點 294
10.9 對主從錶結構中的HashSet進行排序 295
10.10 Hibernate中延遲加載的調試實驗 295
10.10.1 主從錶錶結構的設計 295
10.10.2 對省錶和市錶內容的填充 295
10.10.3 更改映射文件 295
10.10.4 新建測試用的Servlet對象 296
10.10.5 更改映射文件Sheng.hbm.xml 296
10.11 Hibernate中對Oracle中CLOB字段類型的讀處理 297
10.12 Hibernate中的inverse與cascade的測試 297
第11章 在Hibernate 4中使用HQL語言進行檢索 302
11.1 Hibernate的檢索方式 302
11.2 HQL錶彆名 305
11.3 HQL對結果進行排序與list()和iterator()方法的區彆 306
11.4 HQL索引參數綁定 309
11.5 HQL命名參數綁定與安全性 309
11.6 HQL方法鏈的使用 311
11.7 HQL中的uniqueResult()方法的使用 311
11.8 HQL中的Where子句與查詢條件 312
11.9 HQL中的聚集函數:distinct、count、min、max、sum和avg 314
11.10 HQL中的分組查詢 316
第12章 Spring 4的AOP和IOC 318
12.1 Spring介紹 318
12.2 Spring架構 318
12.3 IOC的介紹 319
12.4 AOP的介紹 319
12.5 IOC容器 320
12.6 使用傳統方式保存數據功能的測試 320
12.7 使用Spring的IOC方式保存數據功能的測試 321
12.8 BeanFactory與ApplicationContext 327
12.9 Spring的IOC容器的注入類型 327
12.9.1 通過IOC容器注入基本數據類型 327
12.9.2 通過IOC容器注入引用數據類型 330
12.9.3 通過IOC容器注入null類型 330
12.9.4 通過IOC容器注入Properties類型 332
12.9.5 通過IOC容器對構造方法進行注入 333
12.10 Spring中Bean在Singleton和Prototype中的作用域 335
12.11 Spring中注入外部屬性文件的屬性值 337
12.12 Spring中多個applicationContext.xml配置文件的使用 339
12.13 AOP的概念與介紹 342
12.13.1 靜態代理的實現 342
12.13.2 動態代理的實現 344
12.14 實現MethodBeforeAdvice接口——方法執行前增強 345
12.15 實現AfterReturningAdvice接口——方法執行後增強 348
12.16 實現MethodInterceptor接口——方法執行前後環繞增強 350
第13章 Struts 2+Hibernate 4+ Spring 4整閤 353
13.1 目的 353
13.2 新建Oracle數據錶userinfo 353
13.2.1 新建數據錶userinfo 353
13.2.2 創建序列對象 354
13.3 新建整閤用的Web項目 354
13.4 添加Struts 2框架支持環境 354
13.4.1 添加Struts 2框架 354
13.4.2 在web.xml文件中注冊Struts 2的過濾器 355
13.4.3 在項目的src目錄下創建struts.xml配置文件 355
13.4.4 添加Struts 2框架後的項目文件結構圖 356
13.5 添加Hibernate Database Explorer數據庫連接 356
13.6 添加Hibernate 4框架支持 357
13.7 添加Spring 4框架支持文件 357
13.8 創建的applicationContext.xml文件 358
13.9 在web.xml文件中添加Spring的utf-8編碼過濾器和Spring監聽器 359
13.10 添加Spring 4框架後的Web項目結構 360
13.11 對Oracle 11g數據錶userinfo進行Hibernate逆嚮工程 361
13.12 創建Hibernate 4的DAO類 362
13.13 創建All_DAO對象 363
13.14 創建UserinfoService.java服務對象 364
13.15 創建AllService服務對象 364
13.16 繼續更改applicationContext.xml和hibernate.cfg.xml 365
13.17 新建自定義action的父類BaseAction 367
13.18 新建操作userinfo錶中數據的Action 367
13.19 在applicationContext.xml中配置/base和/test 368
13.20 部署到Tomcat容器 370
第14章 有狀態/狀態會話Bean和消息驅動Bean 373
14.1 EJB3概述 373
14.1.1 Java EE體係結構 374
14.1.2 容器的概念 374
14.2 有狀態會話Bean和狀態會話Bean 375
14.2.1 會話Bean的作用 375
14.2.2 會話Bean的種類 375
14.2.3 在MyEclipse中狀態會話Bean的創建 376
14.2.4 用Web方式調用本地SayHello接口 390
14.2.5 本地和遠程狀態會話Bean的區彆 394
14.2.6 EJB組件接口注解時的默認情況 395
14.2.7 調用遠程類型的狀態會話Bean 396
14.2.8 狀態會話Bean的迴調函數和生命周期 401
14.2.9 狀態會話Bean實例變量值保留的問題與狀態會話Bean實例池 404
14.2.10 有狀態會話Bean 409
14.2.11 有狀態會話Bean的創建與狀態特性 409
14.2.12 將遠程狀態會話Bean共享的服務重命名 416
14.2.13 使用注解聲明會話Bean的第2種寫法 418
14.2.14 有狀態會話Bean的鈍化與激活 419
14.2.15 有狀態會話Bean的迴調函數和生命周期 420
14.2.16 有狀態會話Bean的@Remove迴調函數的使用 425
14.2.17 注入其他本地類型的EJB對象 428
14.3 消息驅動Java Bean(MDB)和在WebLogic中創建消息目的 430
14.3.1 創建持久性存儲對象 431
14.3.2 創建JMS服務器 433
14.3.3 創建JMS模塊 435
14.3.4 在JMS模塊中創建子部署 437
14.3.5 在JMS模塊中創建資源 439
14.3.6 點對點式消息驅動Java Bean 441
14.3.7 發布-訂閱式消息驅動Java Bean 445
14.4 Web Service與在EJB3中創建基於Web Service的業務服務 450
14.5 計時器與作業調度 463
第15章 實體Bean 466
15.1 實體Bean概述 466
15.2 持久層、持久化與ORM 466
15.2.1 在WebLogic的JNDI樹中創建節點與對象 469
15.2.2 在WebLogic的JNDI樹中創建子節點 475
15.2.3 在WebLogic的JNDI樹中查找節點 477
15.2.4 在WebLogic的JNDI樹中刪除節點 478
15.3 從保存記錄開始 479
15.3.1 安裝Oracle11g數據庫 479
15.3.2 使用Toad管理Oracle數據庫 479
15.3.3 使用MyEclipse Database Explorer工具連接Oracle11G數據庫 486
15.3.4 創建EJB3項目 489
15.3.5 更改實體的主鍵與序列映射 492
15.3.6 創建調用外觀的Serlvet 493
15.3.7 更改persistence.xml配置文件 493
15.3.8 KODO的簡要介紹 494
15.3.9 部署到WebLogic中並且運行 494
15.3.10 使用JPA技術嚮Oracle 11g數據庫成功添加記錄 494
15.3.11 改成JNDI連接池的示例 495
15.4 解析實體類所使用的注解 501
15.5 在SQL 2005數據庫中插入記錄 501
15.6 在MySQL數據庫中插入記錄 504
15.7 使用錶在Oracle數據庫中生成主鍵 505
15.8 使用EJB3在Oracle中插入Date時間類型 508
15.9 處理CLOB數據類型 510
15.10 在WebLogic中實現JDBC+JNDI全局性分布式事務實驗 510
15.10.1 JTA和2PC的概述 510
15.10.2 進入WebLogic控製颱 511
15.10.3 配置數據源名稱 511
15.10.4 配置數據源屬性 512
15.10.5 設置數據源連接數據庫的詳細信息 513
15.10.6 測試是否連接到數據庫 513
15.10.7 將數據源歸屬到AdminServer服務器 514
15.10.8 新建名為b_jndi的數據源 514
15.10.9 數據源列錶 514
15.10.10 SQL在正確的情況下實現多數據源提交事務 515
15.10.11 SQL在錯誤的情況下實現多數據源迴滾事務 518
第16章 JPA核心技能 521
16.1 EntityManager類的概述 521
16.1.1 實體類的狀態 522
16.1.2 EJB3中的事務 522
16.2 EntityManager類的方法使用 522
16.2.1 persist(Object)方法 525
16.2.2 merge(T)方法和find(Class, Object)方法 526
16.2.3 remove(Object)方法 528
16.2.4 getReference(Class, Object)方法 530
16.2.5 createNativeQuery()方法 533
16.2.6 close()和isOpen()方法 538
16.2.7 refresh(Object)方法 538
16.2.8 clear()和contains(Object)方法 542
16.2.9 createQuery(String)方法 543
16.2.10 createNamedQuery(String)方法 545
16.3 EntityManagerFactory對象介紹 546
16.4 用Java SE客戶端調用遠程EJB3組件(使用逆嚮DAO) 547
16.5 在Java SE客戶端使用EntityManagerFactory實現持久化(手動配置) 550
16.6 在Java SE客戶端使用EntityManagerFactory實現持久化(自動配置) 552
16.7 在會話Bean中生成EntityManagerFactory 557
16.8 雙嚮一對多的CURD實戰 559
16.8.1 新建數據錶Sheng 559
16.8.2 新建數據錶Shi 559
16.8.3 配置主從鍵約束關係 559
16.8.4 創建企業項目 561
16.8.5 逆嚮EJB實體 561
16.8.6 添加主鍵生成策略的注解 562
16.8.7 配置persistence.xml文件 563
16.8.8 persistence.xml配置文件再次提醒 563
16.8.9 生成的Sheng.java和Shi.java代碼引用 563
16.8.10 創建Sheng的Servlet 564
16.8.11 創建Shi的Servlet 565
16.8.12 更新Sheng的Servlet 566
16.8.13 更新Shi的Servlet 566
16.8.14 刪除沒有市的省 571
16.8.15 刪除有市的省 571
第17章 JPQL必備技能 573
17.1 JPQL介紹 573
17.2 命名參數和索引式參數及實體參數式查詢 573
17.2.1 參數索引式查詢 574
17.2.2 命名式參數查詢 575
17.2.3 為實現主從關聯示例創建sheng錶和shi錶 576
17.2.4 sheng錶和shi錶兩種關聯查詢的方式 577
17.3 JPQL支持的運算符 578
17.3.1 +、-、*、/、=、>=、>、<、<=、<>、between、like、in運算符的使用 578
17.3.2 not運算符的使用 581
17.3.3 is null運算符的使用 582
17.3.4 is empty運算符的使用 582
17.4 order by的使用 583
17.5 查詢指定字段的示例 584
17.6 聚閤函數avg、count、max、min、sum的使用 586
17.7 group by和having的使用 587
17.8 左外連接的使用 588
17.9 通過distinct去除重復記錄 590
17.10 JPQL的字符串操作函數 590
17.11 通過JPQL取得當前的日期和日期時間 594
17.12 JPQL語言對日期的判斷 595
17.13 JPQL的數學函數 598
17.14 JPQL中的分頁功能 599
第18章 FreeMarker模闆引擎的使用 600
18.1 輸齣8種簡單數據類型 600
18.2 簡單數據類型的計算 603
18.3 輸齣復雜數據類型——數組 604
18.4 輸齣集閤對象——List 605
18.5 輸齣集閤對象——Set 606
18.6 輸齣集閤對象——Map 606
18.7 輸齣嵌套類型——List中有Map 607
18.8 輸齣嵌套類型——Map中有List 608
18.9 判斷#if和#else標簽的使用 609
18.10 輸齣實體類的屬性及boolean類型注意事項 609
18.11 FreeMarker中的注釋 611
18.12 FreeMarker中的導入 611
18.13 FreeMarker中對不存在的變量或null值的處理 612 前言/序言