Spring MVC+MyBatis开发从入门到项目实战
  • 推荐4
  • 收藏12
  • 浏览3.2K

Spring MVC+MyBatis开发从入门到项目实战

朱要光 (作者) 

  • 书  号:978-7-121-33390-3
  • 出版日期:2018-01-29
  • 页  数:384
  • 开  本:16(185*260)
  • 出版状态:上市销售
  • 维护人:张月萍
纸质版 ¥79.00

相关图书

Java 9 口袋指南

Robert Liguori;Patricia Liguori (作者) 张卫滨 (译者)

本书以通俗易懂的语言介绍了Java语言的语法、类型、并发编程等基础知识,同时还以样例的形式讲解了Lambda表达式、Java模块系统、JShell这些Java ...

¥49.00

Effective C#(第3版):编写高质量C#代码的50条有效方法(英文版)

Bill Wagner (作者) Bill Wagner(比尔·瓦格纳) (译者)

本书的作者,也是.NET专家Bill Wanger给出我们50条利用C#优点以及特性来写出健壮的,高效的,易于维护的代码的高效法则。同时,本书也反映出了C#语言...

 

Effective Java英文版 (第3版)

Joshua Bloch (作者) Joshua Bloch(约书亚·布洛克) (译者)

和以前的版本一样,有效Java的每一章,第三版,由几个“项目”组成,每一章都以一篇简短的、独立的文章形式呈现,提供了具体的建议,深入了解Java平台的微妙之处,...

 

零基础学编程:树莓派和Python

金学林 (作者)

未来是计算机和机器人的世界。软、硬件编程将成为未来世界重要的一项技能。<br>通往山巅的技术之路有无数条,每条路的方式和难度都不一样。本书给零基础的读者指明了一...

¥49.00

跟老齐学Python:数据分析

齐伟 (作者)

《跟老齐学Python》系列后续。<br>读者在本书中可以学习到Numpy、Pandas、matplotlib、SciPy、SymPy等与数据分析相关的库,掌握...

¥79.00

自动化平台测试开发:Python测试开发实战

邹辉 (作者)

本书详细介绍了基于Python语言的自动化平台开发以及自动化测试技术知识。本书理论与实践<br>相结合,以自动化平台开发为主线、自动化测试为辅线贯穿所有内容。具...

¥69.00
本书分为四部分。第一部分是Java开发环境的搭建,包括JDK的下载与安装、环境变量的配置、MyEclipse的下载与基本配置。第二部分是MyBatis技术入门,包括剖析JDBC的弊端、MyBatis的背景介绍、入门程序的编写、配置文件的剖析、高级映射及缓存结构的讲解,最后还介绍了MyBatis与Spring框架的整合。第三部分是Spring MVC技术入门,包括Spring MVC的背景介绍、架构整体剖析、环境搭建、处理器与映射器的讲解、前端控制器的源码分析、多种视图解析器的介绍、请求映射与参数绑定的介绍、Validation校验与异常处理和拦截器的讲解。第四部分是Spring MVC与MyBatis的项目整合实战篇,通过对水果网络销售平台的需求分析、功能设计、数据库设计以及模块详细编码实现,让读者了解整合项目开发的整体流程。
本书对框架的介绍通俗易懂,由浅入深,结合实例展示,为读者的入门提供了有力的帮助,且为以后的技术提升打下坚实的基础。
全方位解析面向Web应用的轻量级框架,带你成为Spring MVC开发高手
前  言
自从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开发感兴趣的各类人员


目录

第1篇 准备工作
第1章 开发环境搭建 2
1.1 JDK安装与配置 2
1.1.1 下载JDK 3
1.1.2 安装JDK 4
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章 了解MyBatis 14
2.1 传统JDBC开发模式的缺陷 14
2.1.1 JDBC连接数据库模式分析 14
2.1.2 JDBC操作SQL语句模式分析 16
2.1.3 待优化的问题 17
2.2 初识MyBatis 18
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 MVC 132
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.xml 138
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 AbstractCachingViewResolver 162
10.2.2 UrlBasedViewResolver 162
10.2.3 InternalResourceViewResolver 163
10.2.4 XmlViewResolver 163
10.2.5 BeanNameViewResolver 164
10.2.6 ResourceBundleViewResolver 165
10.2.7 FreeMarkerViewResolver与VelocityViewResolver 167
10.2.8 ViewResolver链 168

第11章 请求映射与参数绑定 169
11.1 Controller与RequestMapping 169
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 RESTful 231
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

读者评论

  • 我想知道user表是干嘛用的?不应该是一个用户对应自己的零售商吗?为什么不关联用户呢?哪个用户登录上去都是同样的零售商,这不科学

    小影发表于 2018/6/8 17:26:46
    • 您好,书中的实战项目主要是针对框架技术的结合和实战来练习的,有关用户与订单、零售商之间的业务关联等逻辑,由于篇幅原因,不能够将系统的业务完整化,您可以根据自己的理解,将样例系统优化,使之成为一个业务逻辑更加完善的大型系统

      光仔December发表于 2018/6/30 13:13:15
  • 转载一个京东某店铺上读者对本书的评论:
    传智播客,2015年那批,燕青教的,视频的内容和这本书的框架部分没差别,请问作者这是怎么回事?书是不错,但是这样的抄袭别人就有点意思了。分数打错了,只想给一分的
    京东店铺地址http://item.jd.com/25408234856.html#none

    bv101发表于 2018/6/4 14:02:39
    • 才发现用户表不关联任何一个表,不知道这是忘记了呢,还是像你说的

      小影发表于 2018/6/8 17:34:58
    • 您好,书籍的框架部分,包括系统架构图方面,是基于框架本身的架构层级来划分的,目前类似的教程也有很多,对同一技术的架构总结也都是基于官方文档延伸出来的,出现类似的描述是可以理解的,如果上升到模仿、抄袭等概念,就有些不妥了。同一种技术的总结和分享,都是从技术本身进行剖析的,Spring MVC和Mybatis技术的知识都是由国外优秀的研发人员开发的,我们国内的学者能做到的,就是将这些技术以更加系统化的描述呈现给大家

      光仔December发表于 2018/6/30 13:22:52
    • @小影 有关用户表关联相关的业务信息,由于篇幅原因和编写书籍的时间问题,没有向下继续延伸,您提到的问题也确实是系统业务涉及上的不足,说明您对该类系统的业务关系有全面的思考,这是很棒的。期待您在这次的学习基础上,继续优化书中的样例工程。同时也期待您更够针对样例系统提出更多的意见和思考,对您的技术提升也有很大的帮助

      光仔December发表于 2018/6/30 13:26:59
  • 4.1.5代码报错谁能帮忙看一下
    DEBUG [main] - Logging initialized using ‘class org.apache.ibatis.logging.slf4j.Slf4jImpl’ adapter.
    DEBUG [main] - Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl’ adapter.
    DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
    DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
    DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
    DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
    Exception in thread “main” j**a.lang.ClassCastException: j**a.lang.Integer cannot be cast to j**a.lang.Class
    at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.j**a:76)
    at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.j**a:50)
    at cn.com.mybatis.test.CartObjectFactory.create(CartObjectFactory.j**a:13)
    at cn.com.mybatis.test.ObjectFactoryTest.main(ObjectFactoryTest.j**a:25)

    HEHE 发表于 2018/5/31 9:26:09
    • 您好,可以检查一下您的相关main函数中的Integer类型转换的问题

      光仔December发表于 2018/6/30 13:30:42
  • 应该像其他书籍那样,把资料放在光盘中

    12345a发表于 2018/5/24 21:10:47
  • 第一个程序报错,求帮解决下org.apache.ibatis.exceptions.PersistenceException:

    Error querying database. Cause: j**a.sql.SQLException: null, message from server: “Host ‘apple-PC’ is not allowed to connect to this MySQL server”

    The error may exist in sqlmap/UserMapper.xml

    The error may involve test.findUserById

    The error occurred while executing a query

    Cause: j**a.sql.SQLException: null, message from server: “Host ‘apple-PC’ is not allowed to connect to this MySQL server”

    HEHE 发表于 2018/5/23 14:56:03
    • 您好,建议检查一下UserMapper.xml中的findUserById配置,同时检查一下您开发的机器与MySQL服务的连接

      光仔December发表于 2018/6/30 13:29:12

相关博文

  • 了解MyBatis——让开发更简捷与规范

    了解MyBatis——让开发更简捷与规范

    Jessica瑾妞 2018-03-14

    开发Web应用,数据的存储和处理往往离不开数据库和SQL语句。在使用Java开发的Web应用中,自然也少不了连接数据库的步骤。在底层连接数据库的时候,一般使用JDBC技术,也就是Java的一种提供数据库连接和操作SQL的底层API。但...

    Jessica瑾妞 2018-03-14
    346 0 1 0