搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
MyBatis从入门到精通
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121317972
  • 作      者:
    刘增辉著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2017
收藏
编辑推荐

  适读人群:Java开发人员

  1.资深Java开发工程师执笔

  作者是资深Java开发工程师,活跃于CSDN及开源中国,对MyBatis研究深入,是MyBatis官方推荐的分页插件PageHelper即通用Mapper的作者。

  2.示例完整,注释详细

  《MyBatis从入门到精通》中的示例代码都非常完整,同时每行核心语句都附有注释,可以帮助读者轻松掌握代码的内容,快速入门,持续深化,举一反三。

  2.解读源码,资源丰富

  《MyBatis从入门到精通》的特点在于详细解读MyBatis源代码,带领大家深入理解源码核心。另外,作者开源了许多优秀项目(MyBatis官方推荐的扩展组件等),每一位读者都可以获得《MyBatis从入门到精通》的宝贵资源,并与作者交流讨论。


展开
作者简介

   刘增辉,资深Java工程师,热爱技术研究,乐于分享心得,活跃于CSDN和开源中国网站。对MyBatis源码有着深入研究,同时热衷于开源项目,在GitHub和开源中国网站上发布了多个开源项目,是MyBatis官方推荐的分页插件PageHelper和通用Mapper的作者,所发布项目受到了数千人的关注。

展开
内容介绍

   《MyBatis从入门到精通》中从一个简单的MyBatis查询入手,搭建起学习MyBatis的基础开发环境。通过全面的示例代码和测试讲解了在MyBatis XML方式和注解方式中进行增、删、改、查操作的基本用法,介绍了动态SQL在不同方面的应用以及在使用过程中的zui佳实践方案。针对MyBatis高级映射、存储过程和类型处理器提供了丰富的示例,通过自下而上的方法使读者更好地理解和掌握MyBatis的高级用法,同时针对MyBatis的代码生成器提供了详细的配置介绍。此外,《MyBatis从入门到精通》还提供了缓存配置、插件开发、Spring、Spring Boot集成的详细内容。zui后通过介绍Git和GitHub让读者了解MyBatis开源项目,通过对MyBatis源码和测试用例的讲解让读者更好掌握MyBatis。

展开
精彩书评

  我和作者在开源中国社区上认识,源于我当时开源了Tiny开发框架,我们就框架中的各个部分展开了热烈的讨论,作者也就框架的发展提出了大量有益的建议,做出非常大的贡献。后来了解到作者也开源了很多自己编写的项目,其中尤以MyBatis扩展组件PageHelper突出。作者是一位对技术十分执着的探索者,拥抱开源、乐于分享,将自己多年来在MyBatis领域的研究心得和实践经验汇集在了这本书中。本书由浅入深,引领新手快速入门,带领老手逐步精通,也能为精通者提供参考,是一本值得拥有的MyBatis专著。结识这样一位志同道合的朋友我感到非常荣幸,也希望大家通过本书结识他。

  《企业级JavaEE架构设计精深实践》作者、Tiny开源框架发起者,罗果


  MyBatis的前身是iBATIS,它以接近JDBC的性能优雅地实现Java代码与SQL语句的分离,让开发者将数据操作专注点转移到SQL语句上,进而使代码维护变得更加容易。历经10多年的发展,MyBatis日臻成熟,现已成为Java持久化框架中的佼佼者被广泛应用。但是MyBatis也有一些不完美的地方,例如物理分页问题、缓存问题,对于这些问题,作者在本书中给出了自己的解决方案。本书通俗易懂,妙趣横生,通过实例全面深入讲解了MyBatis的关键技术,是MyBatis开发中一本不可多得的好书,在这里隆重推荐给各位读者!

  互联网金融公司CTO,熔岩


  “万物之始,大道至简,衍化至繁”!MyBatis正是循“至简之道”至今,须臾不离,方有今日的繁荣!放眼于Java框架丛林,十数载以来,无人问津者有之,而后放逐者有之,谩骂者有之,束之高阁者有之,恩泽九州者亦有之……窃以为,MyBatis当属“恩泽九州”者,何也?始终秉持“简单”这一设计理念;架构体系开放;外围插件百花齐放,这其中尤为突出者当属作者的PageHelper。PageHelper经刘兄数载打磨,已广泛应用于诸多项目。得知刘兄MyBatis新作历经持续打磨即将面世,甚为欣喜。刘兄是PageHelper的铸造者,也是国内MyBatis方面不争的quanwei专家,强烈建议大家持卷品读!

  资深Java开发工程师,杨新伦


展开
精彩书摘

  分离是为了更好的相聚

  2013年,我在开源中国网站上认识了本书作者刘增辉,并和他多次探讨过关于Java开源框架的种种技术问题。那段时间,我正在开源一款名为SmartFramework的轻量级JavaWeb框架,当时我不敢奢望自己开源的框架会有多少人认可,但没想到后来还真有不少朋友们为此框架提出了宝贵建议并做出了巨大贡献。尤其是在数据持久层这块,增辉给了我许多支持与帮助,让我感受到开源带给我的不仅是技术能力上的提升,更多的是让自己感到快乐。

  我了解到增辉对MyBatis的研究颇为深入,不仅对MyBatis的内核,甚至对于其扩展都能做到了然于心、游刃有余。他曾经也开源了许多MyBatis核心组件,帮助许多开发者提高了工作效率,而我正是这众多开发者中的一位。

  我不想占用这篇推荐序的宝贵篇幅为大家讲解如何来使用MyBatis,因为这本书中对MyBatis的介绍远比我讲的更加详细和深入。现在我只想和大家聊聊架构设计中的一个核心问题:关注点分离。因为这个问题同样也是MyBatis框架需要解决的核心问题。

  关注点分离

  关注点分离所对应的英文是SeparationofConcerns,简称SOC。它是最经典的架构设计原则之一,在许多架构设计中被广泛使用。关注点分离原则为我们的架构设计提出了三点要求。

  1.架构中需要变化的部分,一定要能够非常清晰地被识别出来。

  2.若架构中某部分发生变化,则该变化不会影响到其他部分。

  3.若架构中某部分需要扩展,则该扩展也不会影响到其他部分。

  架构能做到关注点分离,才能做到真正意义上的解耦,这是架构师们需要努力实现的目标。如果大家要问,关注点分离做得最有效的落地实践是什么?我们首先能想到的就是“前后端分离”。

  前后端分离

  曾经我们开发Web应用程序时,对前端和后端的概念不太清晰,开发者们逐渐认为前端和后端有必要进行分离了,前端需要考虑界面展现与数据展现问题,后端需要考虑业务逻辑与数据逻辑问题。可见,前端和后端所关注的问题是完全不同的,应该在架构上将它们进行分离。此外,在团队协作上也能将前端与后端这两部分的工作进行分离,因此出现了前端工程师与后端工程师这两个不同岗位。这样分工绝不是偶然的,它不仅让架构变得更加解耦,还能显著地提升团队的开发效率。

  针对前端工程师而言,需要将界面展现与数据展现相分离;针对后端工程师而言,不仅要清晰地理解业务逻辑,善于将数据进行合理的建模,最终还要做到将业务逻辑与数据逻辑相分离。

  业务逻辑与数据逻辑相分离

  业务逻辑对于我们而言已经很清楚了,但数据逻辑包括哪些呢?最直接的就是一个个对应于数据库中每张数据表的实体对象,它有一个很好听的名字:数据访问对象,即DataAccessObject,简称DAO。很明显,这一层数据直接和底层数据库打交道,我们将它们从业务逻辑中分离出来,并加以封装。也就是说,没必要为每一个DAO对象初始化的过程去编写大量的代码,这些代码应该封装到一个框架中。我们只需要编写相应的SQL语句,并将这些SQL语句从业务代码中分离出来,最终将执行SQL语句所得到的结果集映射到DAO对象中即可。

  不知道大家对我刚刚提到的“关注点分离”有怎样的理解。无论大家理解或深或浅,毫无疑问,这个问题都已成为架构中最核心的部分。

  MyBatis就是这样的框架——它能帮助我们将业务逻辑与数据逻辑相分离,让开发应用程序的过程变得更加高效。究竟MyBatis中隐藏着怎样的奥秘?不要急,这本书将为大家揭晓答案。

  作者增辉停下开发的脚步,通过深思熟虑和细心总结,把动态的实践静止到了纸张上,为各位读者悉心解读MyBatis的方方面面。相信他创作这本书的过程亦如当初刻苦自学MyBatis并在各大社区开源自己编写的核心组件的过程,倾注了全部的热情和心血。不忘初心,方得始终,希望各位读者能够喜欢这本书,并从中有所收获。

  《架构探险》作者、特赞科技CTO,黄勇

  2017年5月


展开
目录

第1章 MyBatis入门 1

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

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证