mybatis
huanshirenjian
这个作者很懒,什么都没留下…
展开
-
Mybatis系列1-Mybatis介绍和配置
Mybatis前身是iBatis,本质是一种半自动的ORM框架,除了POJO和映射关系之外,还需要编写SQL语句。1.mybatis样例(1)配置文件mybatis-config.xml<configuration> <properties resource="db.properties" /> <settings> <setting nam...原创 2019-05-04 22:13:06 · 187 阅读 · 0 评论 -
Mybatis系列2-一级缓存和二级缓存
1.一级缓存一级缓存默认会启用,存在于 SqlSession 的生命周期中,在同一个SqlSession 中查询时, MyBatis会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个Map对象中。如果同一个SqlSession 中执行的方法和参数完全一致,则会返回缓存中的对象。任何的 INSERT 、UPDATE 、 DELETE 操作都会清空一级缓存。可以通过在select标...原创 2019-05-05 09:14:57 · 137 阅读 · 0 评论 -
Mybatis系列3-日志源码分析
mybatis本身没有提供日志的实现,引入的是第三方组件。mybatis支持多个第三方日志插件,优先级由低到高为slf4J、commonsLoging、Log4J2、Log4J和JdkLog。这里有两个问题:(1)mybatis只有trace、debug、warn、error四个日志级别,但第三方日志组件却有不同的日志级别。怎么兼容的?(2)日志优先级怎么实现的?1.日志级别1.1 适配...原创 2019-05-05 09:14:27 · 1713 阅读 · 0 评论 -
Mybatis系列4-数据源源码分析
1.工厂模式mybatis的数据源模块使用了工厂模式,分析源码前先讲下工厂模式。(1)简单工厂模式简单工厂模式是工厂类直接根据参数创建不同对象。public class SimpleFactory { public static final int TYPE1= 1; public static final int TYPE2 = 2; public static ...原创 2019-05-05 11:02:56 · 185 阅读 · 0 评论 -
Mybatis系列5-缓存源码分析
1.装饰器模式mybatis缓存模块用了装饰器模式,装饰器模式就是用来在类的原有功能基础上添加新功能。装饰器模式中又四个角色:组件接口:Component,定义了组件的行为组件实现类:ConcreteComponent,也就是被装饰的对象装饰器抽象类:Decorator,也实现了组件接口,并且持有一个被装饰的对象装饰器实现类:ConcreteDecorator,实现了装饰器是不是...原创 2019-05-05 12:46:09 · 206 阅读 · 0 评论 -
Mybatis系列6-对象的创建和赋值
mybatis从数据库查出数据来后,需要创建实体对象并设值,然后返回。这个过程是通过JDK的反射实现的。mybatis只是对JDK的反射进行封装,避免每次调用JDK反射的重复性代码。mybatis封装JDK反射有五个关键类:(1)ObjectFactory工厂类接口(2)DefaultObjectFactory上述接口的实现类,主要使用反射创建对象。public class Defau...原创 2019-05-05 13:57:15 · 1468 阅读 · 0 评论 -
Mybatis系列7-核心主流程分析
在前面的文章中,写了一个mybatis样例执行了一次查询,大致分为四步:加载配置文件、获得session、获得Mapper对象、执行查询。1.配置文件加载老规矩由于配置文件加载时候用到了建造者模式,先介绍下这个设计模式。1.1 建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方...原创 2019-05-06 08:13:28 · 474 阅读 · 0 评论 -
Mybatis系列8-mybatis和spring结合分析
我们之前使用的时候创建SqlSessionFactory、加载配载文件等步骤都是手动代码执行的,和spring集合后这些都可以托管给spring自动执行。mybatis和spring结合的时候主要依赖三个类SqlSessionFactoryBean、MapperFactoryBean、MapperScannerConfigurer。1.SqlSessionFactoryBean看这个类名可以...原创 2019-05-06 20:46:27 · 117 阅读 · 0 评论 -
Mybatis系列9-mybatis插件源码分析
mybatis的插件开发使用了责任链模式,老规矩先介绍设计模式。1. 责任链模式责任链模式(Chain of Responsibility Pattern)为请求创建了一个处理请求的链。这个请求由责任链中的处理器一个接一个的处理。责任链中的角色:Handler:处理请求的标准接口ConcreteHandler:具体的处理者,并将请求转发给它的后继者client :发起请求的客户端...原创 2019-05-06 23:01:37 · 120 阅读 · 0 评论