具体描述
《MyBatis从入门到精通》中从一个简单的MyBatis查询入手,搭建起学习MyBatis的基础开发环境。通过全面的示例代码和测试讲解了在MyBatis XML方式和注解方式中进行增、删、改、查操作的基本用法,介绍了动态SQL在不同方面的应用以及在使用过程中的最佳实践方案。针对MyBatis高级映射、存储过程和类型处理器提供了丰富的示例,通过自下而上的方法使读者更好地理解和掌握MyBatis的高级用法,同时针对MyBatis的代码生成器提供了详细的配置介绍。此外,《MyBatis从入门到精通》还提供了缓存配置、插件开发、Spring、Spring Boot集成的详细内容。最后通过介绍Git和GitHub让读者了解MyBatis开源项目,通过对MyBatis源码和测试用例的讲解让读者更好掌握MyBatis。
作者简介
目录信息
1.1 MyBatis简介 2
1.2 创建Maven项目 3
1.3 简单配置让MyBatis跑起来 7
1.3.1 准备数据库 8
1.3.2 配置MyBatis 8
1.3.3 创建实体类和Mapper.xml文件 10
1.3.4 配置Log4j以便查看MyBatis操作数据库的过程 11
1.3.5 编写测试代码让MyBatis跑起来 12
1.4 本章小结 14
第2章 MyBatis XML方式的基本用法 15
2.1 一个简单的权限控制需求 16
2.1.1 创建数据库表 16
2.1.2 创建实体类 19
2.2 使用XML方式 21
2.3 select用法 23
2.4 insert用法 35
2.4.1 简单的insert方法 35
2.4.2 使用JDBC方式返回主键自增的值 38
2.4.3 使用selectKey返回主键的值 40
2.5 update用法 42
2.6 delete用法 45
2.7 多个接口参数的用法 47
2.8 Mapper接口动态代理实现原理 50
2.9 本章小结 51
第3章 MyBatis注解方式的基本用法 53
3.1 @Select注解 54
3.1.1 使用mapUnderscoreToCamelCase配置 55
3.1.2 使用resultMap方式 55
3.2 @Insert注解 58
3.2.1 不需要返回主键 58
3.2.2 返回自增主键 58
3.2.3 返回非自增主键 59
3.3 @Update注解和@Delete注解 59
3.4 Provider注解 60
3.5 本章小结 61
第4章 MyBatis动态SQL 63
4.1 if用法 64
4.1.1 在WHERE条件中使用if 64
4.1.2 在UPDATE更新列中使用if 68
4.1.3 在INSERT动态插入列中使用if 70
4.2 choose用法 72
4.3 where、set、trim用法 75
4.3.1 where用法 75
4.3.2 set用法 76
4.3.3 trim用法 77
4.4 foreach用法 78
4.4.1 foreach实现in集合 78
4.4.2 foreach实现批量插入 81
4.4.3 foreach实现动态UPDATE 84
4.5 bind用法 86
4.6 多数据库支持 86
4.7 OGNL用法 89
4.8 本章小结 90
第5章 Mybatis代码生成器 91
5.1 XML配置详解 92
5.1.1 property标签 95
5.1.2 plugin标签 96
5.1.3 commentGenerator标签 97
5.1.4 jdbcConnection标签 99
5.1.5 javaTypeResolver标签 100
5.1.6 javaModelGenerator标签 101
5.1.7 sqlMapGenerator标签 102
5.1.8 javaClientGenerator标签 103
5.1.9 table标签 104
5.2 一个配置参考示例 109
5.3 运行MyBatis Generator 111
5.3.1 使用Java编写代码运行 111
5.3.2 从命令提示符运行 113
5.3.3 使用Maven Plugin运行 115
5.3.4 使用Eclipse插件运行 117
5.4 Example介绍 119
5.5 本章小结 124
第6章 MyBatis高级查询 125
6.1 高级结果映射 126
6.1.1 一对一映射 126
6.1.2 一对多映射 140
6.1.3 鉴别器映射 156
6.2 存储过程 159
6.2.1 第一个存储过程 162
6.2.2 第二个存储过程 164
6.2.3 第三个和第四个存储过程 166
6.2.4 在Oracle中使用游标参数的存储过程 168
6.3 使用枚举或其他对象 170
6.3.1 使用MyBatis提供的枚举处理器 170
6.3.2 使用自定义的类型处理器 172
6.3.3 对Java 8日期(JSR-310)的支持 175
6.4 本章小结 176
第7章 MyBatis缓存配置 177
7.1 一级缓存 178
7.2 二级缓存 181
7.2.1 配置二级缓存 181
7.2.2 使用二级缓存 184
7.3 集成EhCache缓存 187
7.4 集成Redis缓存 190
7.5 脏数据的产生和避免 191
7.6 二级缓存适用场景 194
7.7 本章小结 194
第8章 MyBatis插件开发 195
8.1 拦截器接口介绍 196
8.2 拦截器签名介绍 198
8.2.1 Executor接口 198
8.2.2 ParameterHandler接口 200
8.2.3 ResultSetHandler接口 201
8.2.4 StatementHandler接口 202
8.3 下画线键值转小写驼峰形式插件 203
8.4 分页插件 206
8.4.1 PageInterceptor拦截器类 207
8.4.2 Dialect接口 212
8.4.3 MySqlDialect实现 216
8.5 本章小结 220
第9章 Spring集成MyBatis 221
9.1 创建基本的Maven Web项目 222
9.2 集成Spring和Spring MVC 227
9.3 集成MyBatis 232
9.4 几个简单实例 234
9.4.1 基本准备 235
9.4.2 开发Mapper层(Dao层) 235
9.4.3 开发业务层(Service层) 238
9.4.4 开发控制层(Controller层) 240
9.4.5 开发视图层(View层) 242
9.4.6 部署和运行应用 245
9.5 本章小结 246
第10章 Spring Boot集成MyBatis 247
10.1 基本的Spring Boot项目 248
10.2 集成MyBatis 251
10.3 MyBatis Starter配置介绍 253
10.4 简单示例 255
10.4.1 引入simple依赖 255
10.4.2 开发业务(Service)层 258
10.4.3 开发控制(Controller)层 259
10.4.4 运行应用查看效果 259
10.5 本章小结 260
第11章 MyBatis开源项目 261
11.1 Git入门 262
11.1.1 初次运行配置 262
11.1.2 初始化和克隆仓库 263
11.1.3 本地操作 265
11.1.4 远程操作 267
11.2 GitHub入门 269
11.2.1 创建并提交到仓库 269
11.2.2 Fork仓库并克隆到本地 272
11.2.3 社交功能 275
11.3 MyBatis源码讲解 278
11.4 MyBatis测试用例 290
11.5 本章小结 293
附录 类型处理器(TypeHandler) 295
· · · · · · (收起)
读后感
用户评价
说实话,市面上关于Java持久化框架的书籍多如牛毛,但真正能让人读完后有一种“醍醐灌顶”感觉的凤毛麟角。这本书的结构安排堪称教科书级别,逻辑清晰到令人称奇。它没有一开始就堆砌那些高深莫测的概念,而是循序渐进地引导读者理解MyBatis的设计哲学——它如何优雅地平衡了SQL的灵活性和ORM框架的便利性。我特别欣赏作者对事务管理和数据源配置的详尽阐述。在企业级应用中,事务的正确性是系统的生命线,书中对编程式事务和声明式事务的深入对比分析,以及如何结合Spring进行无缝集成,让我对整个数据访问层的健壮性有了全新的认识。读完关于插件(Interceptor)那一章,我甚至尝试自己动手写了一个小小的性能监控插件,这在以前是完全不敢想象的事情。这种手把手的指导,让你感觉自己不仅仅是在阅读知识,更是在进行一场高强度的实战演练。它把那些看似晦涩难懂的底层原理,用清晰的语言和图表描绘出来,极大地降低了理解的门槛,让人在学习过程中充满了成就感。
我是一个对代码质量有极高要求的开发者,过去总觉得MyBatis的代码维护起来比较麻烦,尤其是那些散落在XML文件里的SQL,时间久了自己都看不懂。然而,阅读《MyBatis从入门到精通》后,我的看法彻底改变了。作者用了很大篇幅去讲解如何利用MyBatis的最新特性,比如注解的优化使用,以及如何有效地管理和组织你的SQL文件,甚至引入了一些先进的实践,比如如何使用TypeHandler来自定义复杂类型的存取。这本书的价值在于,它不仅教你“怎么做”,更重要的是教你“为什么这么做”,从而培养出一种优秀的代码架构思想。例如,它对Mapper接口代理机制的剖析,让我明白了MyBatis是如何在运行时动态生成和注入SQL执行逻辑的,这种对底层机制的透彻理解,是任何快速入门指南都无法给予的。对我而言,它更像是一本“内功心法”,修炼好了,面对任何复杂的数据交互场景都能游刃有余,不再是那个只会复制粘贴SQL的初级使用者了。
对于一个习惯了全套ORM框架(如Hibernate/JPA)的开发者来说,转向MyBatis常常会感到一种“失控感”,因为需要自己手写大部分SQL。这本书极好地弥补了这种心理落差。它的叙述风格非常具有说服力,仿佛在向读者证明:在特定场景下,自己掌控SQL带来的收益远超ORM框架的便捷性。书中对“面向接口编程”理念在MyBatis中的完美体现做了详尽的论述,这使得代码的模块化和可测试性得到了极大的提升。我特别喜欢它对参数传递和返回值映射的各种高级用法的归纳总结,比如如何处理存储过程和自定义的枚举映射,这些都是日常开发中经常遇到的棘手问题,但书中的解决方案清晰、可靠。这本书不光是教会你MyBatis的使用,更重要的是,它重塑了你对“数据持久化层应该如何设计”的认知。它让你从一个单纯的框架使用者,蜕变为一个能够设计和优化数据访问架构的工程师。
这本书的深入程度远超出了“精通”这个词的表面含义,它更像是MyBatis框架的“源代码解读”指南。我最欣赏的是作者对性能调优方面的细致入微的讲解。在实际工作中,性能瓶颈往往出在数据库交互层面,这本书提供了很多实用的“手术刀”级别的优化技巧。从二级缓存的配置与淘汰策略,到会话级别的`SqlSession`管理,再到批处理操作的正确使用方式,每一个细节都被挖掘到了极致。特别是针对MyBatis与数据库驱动交互过程中的细节处理,让原本以为已经掌握了MyBatis的我,发现了自己过去操作中的许多效率低下的习惯。阅读过程中,我不断地对照自己过去的项目代码,发现了很多可以提升的地方。这本书让你明白,真正的精通不是学会了所有API,而是知道在何种场景下,哪种API的性能最优,以及如何避开那些隐藏的性能陷阱。读完后,我对MyBatis的敬畏感油然而生,因为它展现了这个框架的强大和深度。
这本《MyBatis从入门到精通》简直是为我们这些渴望驾驭这个强大持久层框架的开发者量身定做的“武功秘籍”。我当初刚接触MyBatis时,面对那些错综复杂的XML映射文件和注解配置,常常感到无从下手,仿佛置身于一片迷雾之中。而这本书,它不只是简单地罗列API和配置项,更像是一位经验丰富的师傅,耐心地为你揭开每一层神秘的面纱。我印象最深的是它对动态SQL处理的讲解,那种庖丁解牛般的分析,让我彻底明白了`if`、`where`、`set`、`foreach`这些标签背后的逻辑是如何高效地构建出健壮的SQL语句的。尤其是当涉及到复杂的多表连接查询时,作者并没有止步于基础的`resultMap`,而是深入探讨了延迟加载(Lazy Loading)和缓存机制的精妙设计,这对于优化大型应用的数据访问性能至关重要。这本书的实战案例设计得非常贴合实际业务场景,让人在学习新知识的同时,就能立刻在自己的项目中找到对应的应用点,这种学以致用的感觉,实在太棒了。它构建了一个从零基础到能够独立完成高性能数据持久层开发的完整知识体系,而非仅仅停留在“会用”的层面,而是真正达到了“精通”的标准。
能感受到作者在很有诚意地完成一本学习手册。
入门手册,还需要多理解
好书的,kindle unlimited
挺不错的
挺不错的