Java56项目网
我们一直用心在做

深入浅出MyBatis技术原理与实战 PDF 下载

当前已经是移动互联网时代,Java持久框架Hibernate没有办法适应高性能,灵活,大数据,可优化等要求,这时MyBatis进入了视野,随着移动互联网应用的持续发酵,Spring MyBatis的应用已在Java互联网平台上得到大量的使用,单单在51job招聘网站中MyBatis在全国也有近个岗位的需求,加上未在51job发布的企业,可见需求相当大,而在当今市场上却没有任何一本介绍MyBatis的书籍,为了填补这一空白本书主要介绍了Java MyBatis技术。本书详细介绍了MyBatis的基础组成、配置、映射器、动态SQL,教会读者正确使用MyBatis,书中含大量的实例,使读者可以参考。接着介绍了MyBatis的运行原理和插件开发并配有一个完整的插件例子。为了增加实用性,作者还介绍了MyBatis-Spring项目,使得读者能够学习到如何把MyBatis整合到Spring项目中,后作者还将讲解一些常用实例,比如Blob字段、文件上传、批量、动态表名等实用场景,让读者能够参考和注意一些细节的问题。本书从基础讲到底层,注重实战,原理,照顾到初中高三类读者,可以作为MyBatis的学习教程和参考技术丛书。

目 录
章 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 创建SqlSession………………………………………………………………………………………………………19
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 实例………………………………………………………………………………………………………………………….29
第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 枚举类型typeHandler………………………………………………………………………………………………55

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 测试…………………………………………………………………………………………………………………….2

8.4 总结………………………………………………………………………………………………………………………………2

第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

 

下载地址 : https://pan.baidu.com/s/1lpPZj7l1u78L0f6nbePy5g  密码:fcwa

未经允许不得转载:Java56项目网 » 深入浅出MyBatis技术原理与实战 PDF 下载
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Java56项目网 更专业 更方便

联系我们