随笔分类 - Mybatis
摘要:Mybatis解析配置文件 mybatis-config.xml 解析全流程 MyBatis 初始化的第一个步骤就是加载和解析 mybatis-config.xml 这个全局配置文件,入口是 XMLConfigBuilder 这个 Builder 对象,它由 SqlSessionFactoryBui
阅读全文
摘要:装饰器模式 我们在做一个产品的时候,需求会以多期的方式执行,随着产品的不断迭代,新需求也会不断出现,我们开始设计一个类的时候,可能并没有考虑到新需求的场景,此时就需要为某些组件添加新的功能来满足这些需求。 如果要符合开放-封闭的原则,我们最好不要直接修改已有的具体实现类,因为会破坏其已有的稳定性,在
阅读全文
摘要:数据源是持久层框架中最核心的组件之一,在实际工作中比较常见的数据源有 C3P0、Apache Common DBCP、Proxool 等。作为一款成熟的持久化框架,MyBatis 不仅自己提供了一套数据源实现,而且还能够方便地集成第三方数据源。 javax.sql.DataSource 是 Java
阅读全文
摘要:Apache Commons Logging、Log4j、Log4j2、java.util.logging 等是 Java 开发中常用的几款日志框架,这些日志框架来源于不同的开源组织,给用户暴露的接口也有很多不同之处,所以很多开源框架会自己定义一套统一的日志接口,兼容上述第三方日志框架,供上层使用。
阅读全文
摘要:Mapper 文件与 Java 接口的绑定 MyBatis 的前身是 iBatis,我们在使用 iBatis 的时候,如果想查询一个 Customer 对象的话,可以调用 SqlSession.queryForObject ("find", customerId) 方法,queryForObject
阅读全文
摘要:Reflector **Reflector 是 MyBatis 反射模块的基础。**要使用反射模块操作一个 Class,都会先将该 Class 封装成一个 Reflector 对象,在 Reflector 中缓存 Class 的元数据信息,这可以提高反射执行的效率。 核心初始化流程 既然是涉及反射操
阅读全文
摘要:感觉《Mybatis技术内幕》讲的很好,值得大家深入学习一下。 深入 TypeHandler 其实,MyBatis 中的类型转换器就是 TypeHandler 这个接口,其定义如下: public interface TypeHandler<T> { // 在通过PreparedStatement为
阅读全文
摘要:MyBatis 介绍 Apache 基金会中的 iBatis 项目是 MyBatis 的前身。iBatis 项目由于各种原因,在 Apache 基金会并没有得到很好的发展,最终于 2010 年脱离 Apache,并更名为 MyBatis。三年后,也就是 2013 年,MyBatis 将源代码迁移到了
阅读全文