情情说

记录工作、学习和生活


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

深入浅出MyBatis:MyBatis与Spring集成及实用场景

发表于 2018-03-31 | 分类于 MyBatis

本系列是「深入浅出MyBatis:技术原理与实践」书籍的总结笔记。

本篇是「深入浅出MyBatis」系列的最后一篇,主要介绍与Spring的集成,以及工作中的一些实用场景。

介绍之前,先整体总结下该系列的内容和写作思路。

MyBatis是一个框架,封装了数据库相关的操作,给我们开发人员带来了极大地便利,相对于Hibernate,有很大的灵活性和扩展性,在高并发高性能应用中,这点很重要。

首先介绍了JDBC的规范,了解我们最原始最熟悉的操作数据库的方式,MyBatis就是在此基础上进行封装和抽象。

然后,介绍了MyBatis的特性和核心组件,对其有个整体了解。

之后,详解介绍了MyBatis的配置、映射器,它们是平时使用、接触最多的,可以很好的使用MyBatis进行开发了。

最后,回顾了反射和动态代理基础,深入分析了MyBatis的解析和运行原理,插件及开发过程,一方面对MyBatis的核心组件有更深入的了解,一方面可以更好进行插件的开发,对sql进行统一处理。

实际使用中,往往会和Spring集成一起使用,可以减少我们的工作量,通过本篇的介绍,你会了解到:

  • Spring的基础知识:IOC、AOP、事务管理;
  • MyBatis-Spring应用:配置和集成
  • 实用场景介绍
阅读全文 »

深入浅出MyBatis:MyBatis插件及开发过程

发表于 2018-03-30 | 分类于 MyBatis

本篇文章是「深入浅出MyBatis:技术原理与实践」书籍的总结笔记。

上一篇介绍了 MyBatis解析和运行原理 ,包括SqlSessionFactory的构建和SqlSession的执行过程,其中,SqlSession包含四大对象,可以在四大对象调度的时候插入自定义的代码,以满足特殊的需求,这便是MyBatis提供的插件技术。

有些特殊场景,需要使用插件统一处理,比如:在进行多租户开发时,数据要按租户隔离,可以在sql语句后面统一添加租户编号筛选条件。

本篇就来介绍下插件,通过本篇的介绍,你会了解到:

  • 插件接口和初始化
  • 插件的代理和反射设计
  • 工具类MetaObject介绍
  • 插件的开发过程
阅读全文 »

深入浅出MyBatis:MyBatis解析和运行原理

发表于 2018-03-29 | 分类于 MyBatis

上一篇介绍了反射和动态代理基础,主要是为本篇文章做个铺垫,反射使配置和灵活性大大提高,可以给很多配置设置参数,动态代理可以在运行时创建代理对象,做一些特殊的处理。

本篇会介绍MyBatis解析和运行原理,下一篇介绍插件及应用,目的是更好地编写插件,通过本篇的介绍,你会了解到:

  • 构建SqlSessionFactory过程
  • 映射器的动态代理
  • SqlSession的4大对象
  • sql执行的过程

SqlSessionFactory和SqlSession是MyBatis的核心组件,在文章 JDBC和MyBatis介绍 中有详细说明。

阅读全文 »

深入浅出MyBatis:反射和动态代理

发表于 2018-03-28 | 分类于 MyBatis

前三篇详细总结了Mybatis的基本特性、常用配置、映射器,相对于Hibernate,映射器的配置相对复杂,但有很好的灵活性和扩展性,可以应对各种业务场景。熟练掌握这些内容,可以流畅的使用MyBatis进行开发了。

后面准备介绍MyBatis的解析和运行原理以及自定义插件,今天看了书籍的这部分,都会涉及到反射和动态代理这些基础,本篇文章总结下这些,便于理解原理。

通过本篇的介绍,你会了解到:

  • 反射和动态代理是解决什么问题的
  • Class对象
  • 反射能做什么
  • 动态代理的实现方式:JDK动态代理、CGLIB
阅读全文 »

深入浅出MyBatis:「映射器」全了解

发表于 2018-03-27 | 分类于 MyBatis

本篇文章是「深入浅出MyBatis:技术原理与实践」书籍的总结笔记。

上一篇总结了MyBatis的配置,详细说明了各个配置项,其中提到了映射器,它是MyBatis最强大的工具,也是使用最多的工具。

通过映射器,可以很容易的进行数据的增删改查操作,我们抽象下进行这些操作的关键点:传递查询参数、组装各种场景下的查询条件、关联查询、将查询结果映射为Java Bean对象或集合等。另外,可以通过延迟加载、缓存提高数据查询的性能。

本篇就按照这个思路进行总结,首先列举下映射器的主要元素,每个元素提供的配置项和作用,然后重点介绍参数、结果映射、延迟加载、缓存、动态SQL等功能。

映射器的主要元素

映射器是由Java接口和XML文件(或注解)共同组成的,Java接口主要定义调用者接口,XML文件是配置映射器的核心文件,包括以下元素:

  • select 查询语句,可以自定义参数,返回结果集;
  • insert 插入语句,返回一个整数,表示插入的条数;
  • update 更新语句,返回一个整数,表示更新的条数;
  • delete 删除语句,返回一个整数,表示删除的条数;
  • sql 允许定义一部分SQL,然后再各个地方引用;
  • resultMap 用来描述从数据库结果集中来加载对象,还可以配置关联关系;
  • cache 给定命名空间的缓存配置;
阅读全文 »

深入浅出MyBatis:MyBatis的所有配置

发表于 2018-03-26 | 分类于 MyBatis

上一篇介绍了JDBC的相关概念、MyBatis的特性与Hibernate的区别、MyBatis的基本组件与生命周期,基本可以使用MyBatis了。

这一篇详细介绍MyBatis的配置,首先看下配置XML文件的层次结构,然后详细介绍每个配置项,说明每项的作用,值的取值与含义。

下面列出MyBatis配置XML文件的层次结构,这些层次是不能够颠倒顺序的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>  
<configuration>
<properties/>
<settings/>
<typeAliases/>
<typeHandles/>
<objectFactory/>
<plugins/>
<environments>
<environment>
<transanctionManager/> <!-- 配置事务管理器 -->
<dataSource/> <!-- 配置数据源 -->
</environment>
</environments>

<databaseIdProvider/> <!-- 数据库厂商标识 -->
<mappers/> <!-- 映射器 -->
</configuration>
阅读全文 »

深入浅出MyBatis:JDBC和MyBatis介绍

发表于 2018-03-25 | 分类于 MyBatis

最近在休陪产假,时间比较零碎,准备看2本书充实下,一本是「深入浅出MyBatis:技术原理与实践」,一本是「RabbitMQ实战:高效部署分布式消息队列」,为了加深记忆和理解,会进行整理、扩展和记录。

看书的目标不是把所有的细节都记住,而是从整体上了解一个技术能做什么,包含的特性、基本模块,实现原理和常见使用场景。

本篇分享MyBatis书籍的第一篇,首先回忆下JDBC的相关概念,了解Java提供的访问数据库最基本的方式,然后介绍下MyBatis的基本特性和核心组件,最后说下书的整体结构,了解后续文章的大致内容。

阅读全文 »

小曼老师

发表于 2018-03-22 | 分类于 life

今天是宝宝出生第三天,小眼睛可以和我对视了,圆圆的小脸蛋很帅气,很像我 :) 虽然在医院陪护了三天,昨天晚上又折腾了一晚,还是很精神,大概是内心的喜悦和兴奋感还没过吧。

特别庆幸和感恩的是那个她,度过了艰难的一关。刚怀孕去医院检查时,医生就不建议我们要,因为她身体一直不好,血小板和红细胞一直比较低,之前去过好多医院都没有确诊。

她知道对宝宝没有影响后,顶着内心的不安和不适,坚持要下来。期间,隔三差五的去医院,血液科、产科交替着看,中间还冒风险做了一次骨穿。怕影响我工作,很少让我陪她去,在无数次的地铁和公交拥挤中,有一个坚强、勇敢的身影。

生宝宝时,宫口要生生开到十指,过程是那么的漫长和痛苦,那种疼我无法亲身体验,但透过她的吼叫、表情、求饶可以深深的感觉到。

宫口开到七指时,把她从待产室送进产房后,我就被要求出去了,漫长的焦虑和等待后,从门缝隙中听到了宝宝的哭声,当时很激动,紧绷的内心也稍稍放松了一点。不多久,从她的电话中,听到了温暖的声音,知道她没事之后,才完全放松下来。

她就是我的老婆,那个善良、开朗的小曼老师,很怕疼但勇敢地坚持了下来,在3月20号,3点20分,生下了我们的宝宝。

叫她老师,是因为她教了我很多,影响了我很多。

我们是在朋友的介绍下相识的,当时都在合肥,在一段时间的相处和了解后,就确定了关系。我当时比较内向,不善言谈和相处,被她的真实、善良、开朗的性格所打动。她也说:“从来没有这么在意和喜欢一个人”,我想这就是缘分吧。

和她在一起后,给了我很大的激励,教我如何更好的与他人沟通,如何正确看待自己的优点和缺点。最重要的是,她一点也不会在意我的不善言谈,总是和我分享她身边的一些人和事,和我一起去她想去的地方,让我不那么自卑,眼界也开阔了很多。

现在的我,很多地方已经让自己满意了,相信有了宝宝,我会更加努力,变得更好。

感谢你,小曼老师,我的老婆。

小宝宝

git分支管理和工作流规范:不同场景细化和演示

发表于 2018-03-14 | 分类于 版本控制

前两篇介绍了 git基本概念 和 具体的规范,本篇针对不同的使用场景做演示。

分支

分支命名
  • master 分支名称保持不变
  • develop 分支名称保持不变
  • feature/<分支名称> 功能分支
  • release/<分支名称> 待上线分支
  • hotfix/<分支名称> 线上紧急修复分支
拉取远程分支

git checkout -b <分支名称> origin/<分支名称> 拉取并关联远程分支

创建新分支 

git checkout -b <分支名称>  创建新分支并切换到新分支

阅读全文 »

git分支管理和工作流规范:具体规范

发表于 2018-03-13 | 分类于 版本控制

前一篇介绍了 git相关的概念,我们可以查看文件的状态,在各个状态之间进行切换,可以创建和合并分支,通过rebase还可以整理自己的提交历史。通过这些命令和操作,就可完成工作流规范规定的操作流程了。

本篇介绍具体的规范,包括分支的划分和命名规范,不同类型的分支应对不同的场景,然后会介绍下工作流工具git-flow,如何简化我们的操作。

阅读全文 »
1…4567
calm

calm

67 日志
13 分类
30 标签
© 2018 calm