[置顶] MyBatis书稿已交,本人不是权威,肯定很多错误,希望曲折中前进。

写了大半年的《深入浅出MyBATIS技术原理》书稿已经提交出版社,等待编辑和出版,作为国内第一本MyBatis的书籍,错误难免多多,希望大家多多指教。曲折中前进。

目前提供目录如下:

前言: 1

第一章、 MyBatis简介 10

1.1传统的JDBC编程 10

1.2  ORM模型 13

1.3  Hibernate 14

1.4  MyBatis 18

1.5 什么时候用MyBatis 21

第二章、MyBAITS入门 22

2.1 开发环境准备 22

2.2.1 下载MyBatis 22

2.1.2、搭建开发环境 23

2.2  MyBatis的基本构成 24

2.2.1构建SqlSessionFactory 24

2.2.1.1 使用XML方式构建 25

2.2.1.2 使用代码方式构建 27

2.2.2 创建SqlSession 28

2.2.3 Mapper(映射器) 30

2.2.3.1XML配置方式现实Mapper 30

2.2.3.2Java注解方式现实Mapper 33

2.2.3.3 一些疑问 34

2.3、生命周期 34

2.3.1 SqlSessionFactoryBuilder 35

2.3.2SqlSessionFactory 35

2.3.3SqlSession 35

2.3.4Mapper 35

2.4、实例 36

第三章 配置 45

3.1  properties 元素 46

3.1.1property 子元素 46

3.1.2propoties配置文件 46

3.1.3、程序参数传递 47

3.1.4、优先级 48

3.2 settings 设置 49

3.3 typeAliases  别名 51

3.3.1 系统定义别名: 51

3.3.2 自定义别名 54

3.4 typeHandlers类型处理器 55

3.4.1 系统定义typeHandler 55

3.4.2 自定义typeHandler 58

3.4.3  枚举类型typeHandler 62

3.4.3.1 EnumOrdinalTypeHandler 63

3.4.3.2 EnumTypeHandler 67

3.4.3.3 自定义枚举类的TypeHandler 69

3.5 ObjectFactory 对象工厂 70

3.6 plugins 插件 73

3.7 environments 配置环境 73

3.7.1概述 73

3.7.2 数据库事务 74

3.7.3数据源 75

3.8databaseIdProvider 数据库厂商标识 76

3.8.1、使用系统默认规则: 76

3.8.2、不使用默认规则: 77

3.9mappers 映射器 79

第四章 映射器 81

4.1 映射器的主要元素 81

4.2select元素 82

4.2.1 概述 82

4.2.2、简易数据类型的例子: 83

4.2.3、自动映射 84

4.2.4、传递多个参数 86

4.2.4.1  使用Map 86

4.2.4.2 使用注解方式定义参数 87

4.2.4.3 使用Java Bean定义参数 87

4.2.4.3 建议 88

4.2.5 使用resultMap映射结果集 89

4.3 insert元素 90

4.3.1概述 90

4.3.2 主键回填和自定义 91

4.5 updatedelete元素 93

4.6 参数 93

4.6.1 参数配置 93

4.6.2 存储过程支持 94

4.6.3  特殊字符串替换和处理(#$) 94

4.7.SQL元素 95

4.8  ResultMap 结果映射集 96

4.8.1 ResultMap元素构成 96

4.8.2使用Map存储结果集 98

4.8.3使用POJO存储结果集 98

4.8.4级联: 99

4.8.4.1 association 一对一级联 100

4.8.4.2 collection 一对多级联 103

4.8.4.3 discriminator 鉴别器级联 108

4.8.4.4 性能分析和N+1问题 111

4.8.4.5  延迟加载 112

4.9 缓存 cache 117

4.9.1 系统缓存(一级缓存和二级缓存) 117

4.9.2 自定义缓存 120

第五章: 动态SQL 122

5.1 概述 122

5.2 if元素 122

5.3 choose, when, otherwise元素 123

5.4 trim, where,set 元素 124

5.5  foreach元素 126

5.6 test属性判断字符串 126

5.7  bind 元素 127

第六章:MyBatis解析和运行原理 129

6.1 涉及难点技术简介 129

6.1.1 反射技术 131

6.1.2 JDK动态代理 132

6.1.3 CGLIB动态代理 135

6.2 构建SqlSessionFactory过程: 136

6.2.1、构建Configuration 137

6.2.3  构建映射器 138

6.2.2、构建SqlSessionFactory 138

6.3 SqlSession运行过程: 139

6.3.1 映射器(Mapper)的动态代理 139

6.3.2 SqlSession下的四大对象 143

6.3.2.1 Executor ——执行器 144

6.3.2.2 StatementHandler --数据库会话器 146

6.3.2.3 ParameterHandler --参数处理器 149

6.3.2.4 ResultSetHandler-- 结果处理器 151

6.3.3 SqlSession运行总结: 152

第七章: 插件 154

7.1 插件接口 154

7.2 插件的初始化 155

7.3 插件的代理和反射设计 156

7.4常用的工具类——MetaObject 159

7.5 、插件开发过程和实例 160

7.5.1 确定需要拦截的签名 160

7.5.2实现拦截方法: 162

7.5.3 配置和运行 164

7.5.4 插件实例 164

7.6 总结 169

第八章: MyBatis-Spring 170

8.1 Spring基础知识 170

8.1.1 Spring IOC基础 170

8.1.2 Spring AOP基础 172

8.1.3 Spring事务管理 176

8.1.3.1 事务隔离级别 176

8.1.3.2 传播级别 178

8.1.4 Spring MVC基础 180

8.2 MyBatis-Spring应用 182

8.2.1 概述 182

8.2.2 配置SqlSessionFactory 183

8.2.3  配置SqlSessionTemplate 186

8.2.4 配置Mapper 189

8.2.4.1 MapperFactoryBean 189

8.2.4.2 MapperScannerConfigurer 190

8.2.5配置事务 191

8.3、实例 192

8.3.1 环境准备: 192

8.3.2 文件目录 194

8.3.3 spring配置文件: 196

8.3.4 MyBatis框架相关配置: 201

8.3.5 配置服务层(Service 210

8.3.6 编写控制器(Controller 215

8.3.7测试 216

8.4、总结 217

第九章:实用的场景 218

9.1 数据库BLOB数据读写 218

9.2 批量更新 221

9.2.1一个需要注意批量执行问题 222

9.3 调用存储过程 223

9.3.1 存储过程in和out参数的使用 223

9.3.2 存储过程游标 227

9.4 分表 232

9.5 分页 234

9.5.1  RowBounds分页 234

9.5.2 插件分页 236

9.6 上传文件到服务器 245

9.7 在映射中使用枚举 255

9.8  多对多级联 258

9.9 总结 262

附录: 264

1、数据模型描述 264

2、级联学生关系建表语句(MySQL 266

 


你可能感兴趣的:([置顶] MyBatis书稿已交,本人不是权威,肯定很多错误,希望曲折中前进。)