电子工业出版社有限公司店铺主页二维码
电子工业出版社有限公司
电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
微信扫描二维码,访问我们的微信店铺

Spring+MyBatis企业应用实战(第2版)

54.51
运费: ¥ 8.00
库存: 235 件
Spring+MyBatis企业应用实战(第2版) 商品图0
Spring+MyBatis企业应用实战(第2版) 商品缩略图0

商品详情

产品特色

编辑推荐

适读人群 :本书适合有较好的Java编程基础,JSP、Servlet、JDBC基础,Spring框架基础的读者,尤其适合于对Spring MVC和MyBatis了解不够深入,或对Spring MVC+MyBatis整合开发不太熟悉的开发人员阅读。


1. 基于Spring MVC 5+MyBatis 3.4.5全新升级。

2. 提供配套代码及微信、QQ群答疑服务。

3.贴近实际项目,以案例驱动

本书针对每一个知识点都通过相应的程序给出了示范,所有应用范例都密切契合企业开发实际场景,例如用户权限验证、文件上传下载等都是企业开发实际功能,同时采用了目前企业流行、规范的开发架构,严格遵守Java EE开发规范。读者参考本书的架构,完全可以身临其境地感受企业实际项目开发。

4.内容深入,讲解细致

本书的特点是操作步骤详细,编程思路清晰,语言平实易懂。只要读者认真阅读本书,并掌握书中知识,那么就完全可以胜任企业中Spring MVC+MyBatis项目开发的要求。


内容简介

《Spring+MyBatis企业应用实战》主要介绍介绍了Java EE领域的两个开源框架:Spring MVC和MyBatis。其中Spring的版本为5.0,MyBatis的版本是3.4.5。本书的示例建议在Tomcat 8上运行。

《Spring+MyBatis企业应用实战》详细介绍如何整合Spring MVC 5+MyBatis 3.4.5进行Web应用开发,主要包括三个部分:

第一部分详细介绍了Spring MVC框架的用法。

第二部分详细介绍了MyBatis框架的用法。

第三部分重点介绍了Spring MVC 5+MyBatis 3.4.5的整合,并示范开发了一个包含6个表、表之间具有复杂的关联映射关系,且业务功能也相对完善的HRM人事管理系统案例,希望让读者理论联系实际,将这两个框架真正运用到实际开发当中去。该案例采用目前流行、规范的Java EE架构,整个应用分为DAO持久层、领域对象层、业务逻辑层、控制器层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。

所有代码完全基于Eclipse IDE来完成,一步步带领读者深入两个框架的核心。

作者简介

疯狂软件,多年来从事Java开发、移动开发等方面的培训及研发工作,承接大型研发项目。疯狂软件是广州为学教育科技有限公司的教育品牌,立志以务实的技术来改变中国的软件教育,所培训的学生入职华为、阿里软件、唯品会、网易、IBM等IT名企。


目录

第1章 Java EE应用 1
1.1 Java EE应用概述 2
1.1.1 Java EE应用的分层模型 2
1.1.2 Java EE应用的组件 3
1.1.3 Java EE应用的结构和优势 4
1.2 轻量级Java EE应用相关技术 4
1.2.1 JSP、Servlet和JavaBean及替代技术 4
1.2.2 MyBatis 3及替代技术 5
1.2.3 Spring 5及替代技术 6
1.2.4 使用开源框架的好处 7
1.3 本章小结 7

第2章 Spring MVC简介 8
2.1 MVC思想概述 9
2.1.1 传统Model1和Model2 9
2.1.2 MVC思想及其优势 10
2.2 Struts 2和Spring MVC 11
2.2.1 Spring MVC的优势 11
2.2.2 Spring MVC和Struts 2的区别 11
2.3 开发第一个Spring MVC应用 12
2.3.1 Spring的下载和安装 12
2.3.2 Spring MVC的DispatcherServlet 13
2.3.3 基于Controller接口的控制器 14
示例:第一个Spring MVC应用 14
示例:基于注解的控制器 18
2.4 详解DispatcherServlet 20
2.5 Spring MVC执行的流程 22
2.5.1 Spring MVC应用的开发步骤 22
2.5.2 Spring MVC执行的流程 24
2.6 本章小结 25

第3章 Spring MVC的常用注解 26
3.1 @Controller注解 27
示例:@Controller注解的使用 27
3.2 @RequestMapping注解 29
3.2.1 @RequestMapping注解简介 29
3.2.2 请求处理方法中可出现的参数类型 32
3.2.3 请求处理方法可返回的类型 33
3.2.4 Model和ModelMap 33
示例:Model和ModelMap的使用 34
3.2.5 ModelAndView 35
示例:ModelAndView的使用 35
3.2.6 页面转发 35
3.3 @RequestParam注解 36
示例:@RequestMapping和@RequestParam注解的使用 37
3.4 @PathVariable注解 41
3.5 @MatrixVariable注解 42
3.6 @CrossOrigin注解 42
示例:@PathVariable注解和@MatrixVariable注解的使用 43
示例:@CrossOrigin注解的使用 45
3.7 @RequestHeader注解 46
示例:@RequestHeader注解的使用 47
3.8 @CookieValue注解 48
示例:@CookieValue注解的使用 49
3.9 @RequestAttribute注解 50
3.10 @SessionAttribute注解 50
示例:@RequestAttribute注解和@SessionAttribute注解的使用 51
3.11 @SessionAttributes注解 53
示例:@SessionAttributes注解的使用 53
3.12 @ModelAttribute注解 55
示例:@ModelAttribute注解的使用 55
3.13 @RequestBody注解 62
3.13.1 HttpMessageConverter<T>接口 62
3.13.2 转换JSON数据 64
示例:@RequestBody接收JSON格式的数据 65
示例:自定义HttpMessageConverter接收JSON格式的数据 68
3.14 @ResponseBody注解 70
示例:@ResponseBody返回JSON格式的数据 70
示例:自定义HttpMessageConverter返回JSON格式的数据 72
3.15 转换XML数据 72
示例:接收XML格式的数据 72
示例:返回XML格式的数据 75
3.16 @RestController注解 76
示例:@RestController注解的使用 76
3.17 Spring MVC的异常处理 77
3.17.1 Spring MVC异常处理接口以及实现类 77
示例:SimpleMappingExceptionResolver处理异常 78
3.17.2 @ResponseStatus注解 82
示例:@ResponseStatus处理异常 82
3.17.3 @ExceptionHandle注解 84
示例:@ExceptionHandler处理异常 84
3.17.4 @ControllerAdvice注解 87
示例:@ControllerAdvice处理异常 87
3.17.5 @RestControllerAdvice注解 91
示例:@RestControllerAdvice注解的使用 91
3.18 本章小结 92

第4章 Spring MVC的标签库 93
4.1 表单标签库 94
4.1.1 form标签 94
4.1.2 input标签 95
示例:form和input标签的使用 95
4.1.3 password标签 97
4.1.4 hidden标签 98
4.1.5 textarea标签 98
4.1.6 checkbox标签 99
示例:checkbox标签的使用 99
4.1.7 checkboxes标签 101
示例:checkboxes标签的使用 101
4.1.8 radiobutton标签 105
示例:radiobutton标签的使用 105
4.1.9 radiobuttons标签 106
示例:radiobuttons标签的使用 107
4.1.10 select标签 108
4.1.11 option标签 109
4.1.12 options标签 109
示例:select、option和options标签的使用 109
4.1.13 errors标签 113
示例:errors标签的使用 114
4.2 本章小结 116

第5章 Spring MVC的国际化 117
5.1 Spring MVC国际化的相关知识 118
5.1.1 messageSource接口 118
5.1.2 localeResolver接口 118
5.1.3 message标签 119
5.2 Spring MVC的国际化处理 119
5.2.1 AcceptHeaderLocaleResolver 119
示例:基于浏览器请求的国际化实现 119
5.2.2 SessionLocaleResolver 122
示例:基于HttpSession的国际化实现 123
5.2.3 CookieLocaleResolver 125
示例:基于Cookie的国际化实现 125
5.3 本章小结 127

第6章 Spring MVC的数据转换、格式化和数据校验 128
6.1 数据绑定流程 129
6.2 数据转换 129
6.2.1 ConversionService 129
6.2.2 Spring支持的转换器 130
示例:使用ConversionService转换数据 131
示例:使用@InitBinder添加自定义编辑器转换数据 134
示例:使用WebBindingInitializer注册全局自定义编辑器转换数据 135
6.2.3 多种转换器的优先顺序 135
6.3 数据格式化 136
示例:使用Formatter格式化数据 137
示例:使用FormatterRegistrar注册Formatter 138
示例:使用AnnotationFormatterFactory <A extends Annotation>格式化数据 139
6.4 数据校验 142
6.4.1 Spring的Validation校验框架 143
示例:测试Spring的Validation校验 143
6.4.2 JSR 303校验 146
示例:测试JSR 303校验 147
6.5 本章小结 152

第7章 Spring MVC的文件上传下载和拦截器机制 153
7.1 文件上传 154
示例:Spring MVC的文件上传 154
示例:使用对象接收上传文件 157
7.2 文件下载 158
示例:Spring MVC的文件下载 158
7.3 拦截器 160
7.3.1 HandlerInterceptor接口 160
示例:拦截器实现用户权限验证 161
7.4 本章小结 164

第8章 MyBatis简介 165
8.1 ORM和MyBatis 166
8.1.1 对象/关系数据库映射(ORM) 166
8.1.2 基本映射方式 167
8.1.3 流行的ORM框架简介 168
8.1.4 MyBatis概述 168
8.2 MyBatis入门 169
8.2.1 MyBatis下载和安装 169
示例:MyBatis的数据库操作入门 170
8.3 本章小结 175

第9章 MyBatis的基本用法 176
9.1 MyBatis体系结构 177
9.1.1 SqlSessionFactory 177
9.1.2 SqlSession 177
9.2 深入MyBatis的配置文件 179
9.2.1 MyBatis的配置文件结构 180
9.2.2 properties属性 180
9.2.3 settings设置 181
9.2.4 typeAliases类型命名 183
9.2.5 typeHandlers类型处理器 184
9.2.6 objectFactory对象工厂 185
9.2.7 environments配置环境 185
9.2.8 mapper映射器 187
9.3 MyBatis日志信息配置 188
9.3.1 log4j.properties配置日志 188
9.3.2 log4j.xml配置日志 189
9.4 深入Mapper XML映射文件 190
9.4.1 select 191
9.4.2 insert、update和delete 192
9.4.3 sql 194
9.4.4 参数(Parameters) 195
示例:测试select、insert、update和delete操作 195
9.4.5 ResultMaps 200
示例:测试ResultMaps 201
9.5 本章小结 208

第10章 深入使用MyBatis 209
10.1 MyBatis关联映射 210
10.1.1 一对一 210
示例:OneToOneTest 210
10.1.2 一对多 213
示例:OneToManyTest 213
10.1.3 多对多 218
示例:ManyToManyTest 218
10.2 MyBatis动态SQL 225
示例:DynamicSQLTest 225
10.2.1 if 226
10.2.2 choose(when、otherwise) 229
10.2.3 where 230
10.2.4 set 232
10.2.5 foreach 233
10.2.6 bind 234
10.3 MyBatis调用存储过程 234
示例:MyBatis调用存储过程 235
10.3.1 插入数据 235
10.3.2 查询数据返回集合 237
10.3.3 根据id查询数据返回对象 238
10.3.4 修改数据 239
10.3.5 删除数据 241
10.4 MyBatis事务管理 242
10.4.1 事务的概念 242
10.4.2 Transaction接口 243
10.4.3 事务的配置创建和使用 243
10.5 MyBatis缓存机制 247
10.5.1 一级缓存(SqlSession级别) 247
示例:OneLevelCacheTest 247
10.5.2 二级缓存(mapper级别) 251
示例:TwoLevelCacheTest 251
10.6 本章小结 254

第11章 MyBatis的注解配置 255
11.1 常用注解 256
11.2 注解的使用 256
示例:测试select、insert、update和delete操作 257
示例:测试一对一关联 262
示例:测试一对多关联 263
示例:测试多对多关联 265
示例:测试动态SQL 267
示例:测试调用存储过程 274
示例:测试二级缓存 276
11.3 本章小结 278

第12章 Spring 5整合MyBatis 3 279
12.1 开发环境搭建 280
12.2 准备所需的jar包 280
12.3 准备数据库资源 280
12.4 完成配置文件 281
12.5 持久层功能实现 283
12.6 服务层功能实现 284
12.7 控制层功能实现 286
12.8 JSP页面 288
12.9 测试Spring 5整合MyBatis 3 289
12.10 本章小结 290

第13章 实战项目:人事管理系统 291
13.1 项目简介及系统结构 292
13.1.1 系统功能介绍 292
13.1.2 相关技术介绍 293
13.1.3 系统结构 293
13.1.4 系统的功能模块 294
13.2 数据表和持久化类 294
13.2.1 设计数据库表 294
13.2.2 设计持久化实体 296
13.2.3 创建持久化实体类 297
13.3 实现DAO持久层 303
13.3.1 公共常量类 304
13.3.2 定义DAO接口 304
13.3.3 部署DAO层 318
13.4 实现Service持久层 319
13.4.1 业务逻辑组件的设计 319
13.4.2 实现业务逻辑组件 320
13.4.3 事务管理 335
13.4.4 部署业务逻辑组件 335
13.5 实现Web层 335
13.5.1 控制器的处理顺序 335
13.5.2 用户管理 339
13.5.3 部门管理 342
13.5.4 职位管理 345
13.5.5 员工管理 348
13.5.6 公告管理 351
13.5.7 下载中心 355
13.6 本章小结 359

附录A EL表达式和JSTL标签库 360

前言/序言


时至今日,以Spring为核心的轻量级Java EE企业开发平台在企业开发中占有绝对的优势,Java EE应用以其稳定的性能、良好的开放性以及严格的安全性,深受企业应用开发者的青睐,应用的性能、稳定性都有很好的保证。

轻量级Java EE开发大致可分为两种方式:以Struts+Spring+Hibernate三大框架为核心的轻量级Java EE和以Spring MVC+MyBatis为核心的轻量级Java EE。这两种组合都在保留经典Java EE应用架构、高度可扩展性、高度可维护性的基础上,降低了Java EE应用的开发、部署成本,对于大部分中小型企业应用来说是首选。

本书重点介绍以Spring MVC+MyBatis为核心的轻量级Java EE。本书采用Tomcat 8作为Web服务器,Eclipse IDE作为开发工具,详细介绍了Spring MVC和MyBatis框架。Spring MVC的配置全部使用注解方式,不再采用旧版本中传统的XML配置方式;MyBatis则基于企业开发实际情况,首先介绍了传统的XML持久化映射,之后又介绍了升级的注解持久化映射。

随着Spring的不断发展,Spring MVC已有取代Struts的能力,而MyBatis相对Hibernate而言则更为轻便、简单,越来越多的公司选择使用Spring MVC+MyBatis的轻量级框架组合来开发Java EE项目,因此掌握Spring MVC+MyBatis技术将为Java开发者带来更多的就业机会与竞争力。


本书有什么特点

本书是一本介绍Spring MVC+MyBatis技术以及两者整合的实用图书,全面介绍了最新的Spring MVC和MyBatis各方面的知识。

本书针对每一个知识点都通过相应的程序给出了示范,第13章的实战项目“HRM人事管理系统”采用目前最流行、最规范的Java EE架构,整个应用分为DAO持久层、领域对象层、业务逻辑层、控制器层和视图层,各层之间分层清晰,层与层之间以松耦合的方式组织在一起。笔者既担任过软件开发的技术经理,也担任过软件公司的培训导师,现如今从事专业、高端的职业技术培训。本书所有应用范例都密切契合企业开发实际场景,例如用户权限验证、文件上传下载等都是企业开发中要实现的实际功能,同时采用目前企业中颇为流行、规范的开发架构,严格遵守Java EE开发规范。读者参考本书的架构,完全可以身临其境地感受企业实际项目开发。

本书并不是一本关于所谓“思想”的书,也没有一堆“深奥”的新名词和“高深”的理论,只是让读者学会实际的Spring MVC和MyBatis技术。本书的特点是操作步骤详细,编程思路清晰,语言平实易懂。只要读者认真阅读本书,并掌握书中知识,那么就完全可以胜任企业中的Spring MVC+MyBatis项目开发。

阅读本书需要具备一定的计算机知识以及编程功底。熟练掌握Java语言和Spring框架的IOC、AOP和持久层的ORM设计模式等知识对于学习本书是很有必要的。

可访问www.crazyit.org或www.broadview.com.cn/33780下载本书配套资源。


本书写给谁看

如果你已经掌握了Java SE的内容,或已经学完了疯狂软件教育的《疯狂Java讲义》一书,那么你非常适合阅读此书。除此之外,如果你已有初步的JSP、Servlet、JDBC基础,甚至对Spring、MyBatis等框架有所了解,但希望掌握它们在实际开发中的应用,本书也非常适合你。如果你对Java的掌握还不熟练,则建议遵从学习规律,循序渐进,暂时不要购买、阅读此书,而是按照“疯狂Java学习路线图”中的建议顺序学习。


衷心感谢

衷心感谢李刚老师,他是笔者非常好的朋友,在本书的创作过程中,他提供了大量切实、有用的帮助。同时衷心感谢疯狂软件教育中心所有同事提供的帮助。

感谢我的妻子王丹娜女士,她给了我生活上、精神上无微不至的关怀和照顾,并承担几乎所有的日常家务,使我能够心无旁骛地专注于程序的研究和书籍的撰写。

感谢所有参加疯狂软件实训的学生,他们在实际工作场景的应用中证明了本书的价值,他们的反馈让本书更加实用。


肖文吉


电子工业出版社有限公司店铺主页二维码
电子工业出版社有限公司
电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
扫描二维码,访问我们的微信店铺

Spring+MyBatis企业应用实战(第2版)

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏