阅读(3811) (0)

深入浅出MyBatis技术原理与实战(博文视点出品)

2021-05-12 21:48:42 更新

深入浅出MyBatis技术原理与实战(博文视点出品)

杨开振 著

  • 出版社: 电子工业出版社
  • ISBN:9787121295942
  • 版次:1
  • 商品编码:11961241
  • 品牌:博文视点
  • 包装:平装
  • 开本:16开
  • 出版时间:2016-09-01
  • 用纸:胶版纸
  • 页数:268
  • 字数:310000


点此购买


编辑推荐

适读人群 :Java、Java持久层框架

  本书开创国内对MyBatis技术应用的探索先河。本书首先是基于官方文档论述的完善和具体实例的补充,并且详细阐述了MyBatis内部运行原理和插件开发过程,同时教你整合开发MyBatis-Spring项目。

  没有味同嚼蜡的理论说教,只有实实在在的方法应用,帮助你在一线工作中用好MyBatis。


内容简介

  随着大数据时代的到来,Java持久层框架MyBatis已经成为越来越多企业的选择。遗憾的是,时至今日国内依然没有一本讨论MyBatis的书,这增加了初学者的学习难度,初学者往往只能基于零星的案例来学习MyBatis,无法系统地掌握MyBatis,更不用说精通了。《深入浅出MyBatis技术原理与实战》是笔者通过大量实践和研究源码后创作而成的,是国内系统介绍MyBatis著作的先河。
  《深入浅出MyBatis技术原理与实战》分为3个部分,依次介绍了MyBatis的基础应用、原理及插件开发、实践应用,使读者能够由浅入深、循序渐进地掌握MyBatis技术。首先,《深入浅出MyBatis技术原理与实战》在官方API的基础上完善了许多重要的论述和实例,并且给出了实操建议,帮助读者正确掌握MyBatis。其次,《深入浅出MyBatis技术原理与实战》详细讲述了MyBatis的内部运行原理,并全面讨论了插件的开发。最后,本着学以致用的原则,笔者阐述了MyBatis-Spring项目和一些MyBatis开发常见的实例,使读者能够学得会,用得好。
  《深入浅出MyBatis技术原理与实战》不是一本味同嚼蜡的理论专著,而是一本MyBatis的实践指南,无论你是Java程序员、MyBatis开发者,还是Java持久层框架的研究者,你都能从本书中收获知识。


作者简介

  杨开振,长期从事Java开发工作,拥有近十年的Java开发经验,目前就职于一家互联网金融公司,担任互联网软件开发职位。
  IT技术的狂热爱好者,热衷于Java互联网方向的软件技术开发与研究。
  熟练掌握Java基础、软件开发设计模式和数据库相关知识,对Spring、MyBatis等主流Java开源框架有深入研究。


目录

第1 章 MyBatis 简介 1
1.1 传统的JDBC 编程 1
1.2 ORM 模型 4
1.3 Hibernate 4
1.4 MyBatis 9
1.5 什么时候用MyBatis 12
第2 章 MyBaits 入门 13
2.1 开发环境准备.13
2.1.1 下载MyBatis 13
2.1.2 搭建开发环境 14
2.2 MyBatis 的基本构成 15
2.2.1 构建SqlSessionFactory 15
2.2.2 创建SqlSession19
2.2.3 映射器 21
2.3 生命周期.26
2.3.1 SqlSessionFactoryBuilder 27
2.3.2 SqlSessionFactory 27
2.3.3 SqlSession 27
2.3.4 Mapper 28
2.4 实例 28
第3 章 配置 37
3.1 properties 元素 38
3.1.1 property 子元素.38
3.1.2 properties 配置文件 39
3.1.3 程序参数传递 39
3.1.4 优先级 40
3.2 设置 41
3.3 别名 44
3.3.1 系统定义别名 44
3.3.2 自定义别名 47
3.4 typeHandler 类型处理器.48
3.4.1 系统定义的typeHandler 49
3.4.2 自定义typeHandler 51
3.4.3 枚举类型typeHandler55
3.5 ObjectFactory 62
3.6 插件 65
3.7 environments 配置环境 65
3.7.1 概述65
3.7.2 数据库事务 66
3.7.3 数据源 67
3.8 databaseIdProvider 数据库厂商标识 68
3.8.1 使用系统默认规则 68
3.8.2 不使用系统默认规则69
3.9 引入映射器的方法 71
第4 章 映射器 73
4.1 映射器的主要元素 73
4.2 select 元素 74
4.2.1 概述74
4.2.2 简易数据类型的例子75
4.2.3 自动映射.76
4.2.4 传递多个参数 78
4.2.5 使用resultMap 映射结果集 81
4.3 insert 元素 82
4.3.1 概述82
4.3.2 主键回填和自定义 83
4.4 update 元素和delete 元素 85
4.5 参数 85
4.5.1 参数配置.86
4.5.2 存储过程支持 86
4.5.3 特殊字符串替换和处理(#和$) 87
4.6 sql 元素 88
4.7 resultMap 结果映射集 89
4.7.1 resultMap 元素的构成 89
4.7.2 使用map 存储结果集91
4.7.3 使用POJO 存储结果集 91
4.7.4 级联92
4.8 缓存cache 113
4.8.1 系统缓存(一级缓存和二级缓存) 113
4.8.2 自定义缓存 117
第5 章 动态SQL 119
5.1 概述119
5.2 if 元素 120
5.3 choose、when、otherwise 元素 120
5.4 trim、where、set 元素 121
5.5 foreach 元素 123
5.6 test 的属性 124
5.7 bind 元素125
第6 章 MyBatis 的解析和运行原理 127
6.1 涉及的技术难点简介 128
6.1.1 反射技术129
6.1.2 JDK 动态代理.130
6.1.3 CGLIB 动态代理 133
6.2 构建SqlSessionFactory 过程134
6.2.1 构建Configuration 135
6.2.2 映射器的内部组成 136
6.2.3 构建SqlSessionFactory 138
6.3 SqlSession 运行过程 138
6.3.1 映射器的动态代理 138
6.3.2 SqlSession 下的四大对象.142
6.3.3 SqlSession 运行总结150
第7 章 插件.152
7.1 插件接口152
7.2 插件的初始化153
7.3 插件的代理和反射设计154
7.4 常用的工具类——MetaObject 157
7.5 插件开发过程和实例 159
7.5.1 确定需要拦截的签名 159
7.5.2 实现拦截方法.161
7.5.3 配置和运行 162
7.5.4 插件实例163
7.6 总结166
第8 章 MyBatis-Spring 168
8.1 Spring 的基础知识.168
8.1.1 Spring IOC 基础 169
8.1.2 Spring AOP 基础 171
8.1.3 Spring 事务管理 173
8.1.4 Spring MVC 基础 179
8.2 MyBatis-Spring 应用 181
8.2.1 概述 181
8.2.2 配置SqlSessionFactory 182
8.2.3 配置SqlSessionTemplate 184
8.2.4 配置Mapper 188
8.2.5 配置事务190
8.3 实例191
8.3.1 环境准备191
8.3.2 文件目录193
8.3.3 Spring 配置文件 194
8.3.4 MyBatis 框架相关配置 198
8.3.5 配置服务层 205
8.3.6 编写控制器 209
8.3.7 测试 210
8.4 总结210
第9 章 实用的场景 212
9.1 数据库BLOB 字段读写 212
9.2 批量更新215
9.3 调用存储过程217
9.3.1 存储过程in 和out 参数的使用217
9.3.2 存储过程游标.220
9.4 分表225
9.5 分页227
9.5.1 RowBounds 分页 227
9.5.2 插件分页229
9.6 上传文件到服务器239
9.7 在映射中使用枚举247
9.8 多对多级联 249
9.9 总结253
附录A 数据库模型描述与级联学生关系建表语句.254


前言/序言

  随着手机、平板电脑等移动终端的广泛应用,移动互联网时代已经到来。在这个时代里,构建一个高效的平台并提供服务是移动互联网的基础,在众多的网站服务中,使用Java构建网站的不在少数。移动互联网的特点是大数据、高并发,对服务器往往要求分布式、高性能、高灵活等,而传统模式的Java数据库编程框架已经不再适用了。在这样的背景下,一个Java的持久框架MyBatis走入了我们的世界,它以封装少、高性能、可优化、维护简易等优点成为了目前Java移动互联网网站服务的首选持久框架,它特别适合分布式和大数据网络数据库的编程。
  本书主要讲解了MyBatis的应用。从目前的情况来看,国内图书市场上没有介绍MyBatis的书籍,有的只是官方的API和少数的几篇博客文章,国外图书市场上的这类书籍也是凤毛麟角,这使得系统学习MyBatis困难重重。官方的API只是简单介绍了MyBatis有些什么功能和一些基本的使用方法,没有告诉我们如何用好,其中原理是什么,需要注意哪些问题,这显然是不够的。有些博客虽然讲解得比较深入,但是内容支离破碎,没有形成一个完整的知识体系,不易于初学者对MyBatis进行系统学习。随着移动互联网应用的兴起,系统掌握MyBatis编程技巧已经成了用Java构建移动互联网网站的必要条件。为了顺应时代的要求,笔者写下了这本书,以期为广大需要掌握MyBatis的开发者提供学习和参考的资料。
  阅读本书要求开发人员拥有Java语言基础和JDBC基础知识,对数据库也要掌握入门知识,最好能够掌握常用的设计模式,因为在介绍MyBatis构造时,常常涉及设计模式,尤其是第6章和第7章的内容。
  本书以讲解MyBatis基础运用和原理为主,所以适合初级到中高级开发人员阅读。
  本书分为三大部分。
  第一部分是MyBatis基础应用,主要介绍如何高效地使用MyBatis。
  第1章:MyBatis的内容简介,告诉读者MyBatis是什么,在何种场景下使用它。
  第2章:主要介绍MyBatis的基础模块及其生命周期,并给出实例。
  第3章:主要介绍MyBatis配置的主要含义和内容。
  第4章:介绍MyBatis映射器的主要元素及其使用方法。
  第5章:介绍动态SQL,助你轻松应对大部分的SQL场景。
  第二部分是MyBatis原理,我们将深入源码去理解MyBatis的内部运行原理以及插件的开发方法和技巧。
  第6章:介绍MyBatis的解析和运行原理,我们将了解到SqlSession的构建方法,以及其四大对象是如何工作的。
  第7章:在第6章的基础上着重介绍MyBatis的插件,这里我们将学习插件的设计原理,以及开发方法和注意的要点。
  第三部分是MyBatis的实战应用,主要讲解MyBatis的一些实用的场景。
  第8章:介绍MyBatis-Spring,主要讲解如何在Spring项目中集成MyBatis应用,帮助读者在Spring的环境中顺利使用MyBatis。
  第9章:介绍MyBatis的实用场景,精选一批典型且又常用的场景。详细解析每一个场景下,开发人员需要注意避免的一些错误和性能上的损失。
  MyBatis源于2002年的iBatis项目,至今MyBatis中依然有许多iBatis的痕迹。本书默认使用MyBatis的版本是3.3.0,使用MyBatis-Spring的版本是1.2.3。而历史上的iBatis的书籍已经跟不上技术发展的步伐,于是笔者通过自己的努力和实践,在研究MyBatis源码的基础上,写作本书。从本书中既能学习如何使用MyBatis,也可以学习MyBatis的原理和应用,为国内的MyBatis开发者提供一条系统掌握MyBatis编程技巧的捷径,当然读者也可以把本书作为工具书参考。在实际操作中,MyBatis往往是结合Spring使用的,于是本书花费了一些篇幅讲解MyBatis-Spring技术,笔者也会略略提到Spring项目的内容,以便更好地论述它们。最后笔者还将讲解一些使用频率高、参考价值大的场景,使读者能熟练掌握MyBatis的开发。
  本书坚持实用原则,对于一些使用频率低的技术并没有提及太多,比如注解SQL、SQL
  构造器等内容,使用这些内容,会造成代码的可读性下降。
  感谢我的公司为我提供真实的使用MyBatis的环境,所有的程序代码都经过了调试。感谢我的姐姐杨坚,她参与编写并通篇审校了本书,润色了那些晦涩的句子。同时也感谢电子工业出版社的编辑们,尤其是汪达文的全程跟进。没有他们的辛苦付出,就没有本书的成功出版。在出版本书的欣喜之余,也伴着战战兢兢,因为笔者才疏学浅,很多东西都是从对源码的理解和实际操作中获得的,因此书中难免有疏漏之处,或有不能让读者满意的地方。如果有困惑,读者可以发邮件到我的邮箱:ykzhen2013@163.com,也可以在我的博客(http://blog.csdn.net/ykzhen2015)中和我讨论,还望各位同行不吝赐教。
  杨开振
  2016年7月


点此购买