mybatis源码分析
HAD_HAD
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mybatis之Property工具集
PropertyTokenizer 该类主要是解析一些稍微复杂的表达式 orders[O].item[0].name这种表达式 /** * @author Clinton Begin * 属性标记器 */ /** * 假设传入的为student[sId].name * 则各个属性得到以下结果 * * 该属性标记器只能处理一级,即点后面的都作为children */ public class PropertyTokenizer implements Iterator<Propert原创 2021-03-03 09:46:34 · 3197 阅读 · 0 评论 -
mybatis之Reflector和ReflectorFactory
Reflector和ReflectorFactory ReflectorFactory /** * 工厂接口的默认实现 */ public class DefaultReflectorFactory implements ReflectorFactory { //该字段决定了是否对开启对Reflector的缓存 private boolean classCacheEnabled = true; //使用线程安全的map对Reflector对象进行缓存 private final Conc原创 2021-03-03 09:45:54 · 327 阅读 · 0 评论 -
mybatis之TypeParameterResolver工具类
TypeParameterResolver 它是一个工具类,提供了一系列静态 方法来解析指定类中的宇段、方法返回值或方法参数的类型。 TypeParameterResolver 中各个静 态方法之间的调用关系大致如图 2-11 所示,为保持清晰,其中递归调用没有表现出来,在后面 的代码分析过程中会进行强调。 public class TypeParameterResolver { /** * @return The field type as {@link Type}. If it原创 2021-03-03 09:45:09 · 374 阅读 · 0 评论 -
mybatis之Type类
Type类 type类是所有类型的父接口,它由四个子接口和一个实现类 下面来看这些子接口和子类所代表的类型。 Class类比较常见,它表示的是原始类型。Class类表示的是JVM中的一个类或者接口。每个java类在JVM中都表现为一个Class对象。在程序中可以通过类名.class或者对象.getClass()或者是Class.forName(全限定类名)来获取Class对象。数组也也被映射为Class对象,所有元素类型相同并且维数相同的数组都共享一个Class对象。 Parameteri原创 2021-03-03 09:42:00 · 1106 阅读 · 0 评论 -
mybatis之Log接口及其实现类
Log接口及其实现类 public interface Log { boolean isDebugEnabled(); boolean isTraceEnabled(); void error(String s, Throwable e); void error(String s); void debug(String s); void trace(String s); void warn(String s); } public final class LogF原创 2021-03-03 09:38:24 · 847 阅读 · 0 评论 -
mybatis之ResolverUtil工具类
ResolverUtil工具类 * ResolverUtil 用来定位某个class路径下满足任意条件的类们。通常的筛选条件是: * 类继承了某个接口 * 实现了某个类 * 类拥有可定的注解 * 基于Test类可以用来判断某各类是否满足这些条件 public class ResolverUtil<T> { /* * An instance of Log to use for logging in this class. */ private static f原创 2021-03-03 09:37:30 · 444 阅读 · 0 评论 -
mybatis之日志系列适配器
适配器模式 适配器其实很简单,就是实现类Adaptee无法实现Target的接口,所有封装了一个中间层Apapter适配器,该适配器实现了接口Target并且把实现类Adaptee作为类参数。Apapter在实现接口Target的方法是实际上是使用了参数Adaptee进行实现。 public interface Target { void 吃饭(); } public class Adaptee { void 吃大米饭() { System.out.println("吃大原创 2021-03-03 09:34:33 · 213 阅读 · 0 评论 -
mybatis值VFS虚拟文件类
VFS接口 private static final Log log = LogFactory.getLog(VFS.class); /** 记录 MyBatis 供的两个 VFS 实现类. */ public static final Class<?>[] IMPLEMENTATIONS = { JBoss6VFS.class, DefaultVFS.class }; /** 记录 用户自定义 VFS 实现类 VFS addimplClass ()方法会将指定的 VFS 实原创 2021-03-03 09:31:30 · 589 阅读 · 0 评论 -
mybatis源码分析之XMLConfigBuilder对XML文件的解析
XMLConfigBuilder对XML文件的解析 public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) { try { XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties); return build(parser.p原创 2021-02-25 09:41:03 · 346 阅读 · 2 评论 -
mybatis源码分析之XMLConfigBuilder创建过程2
XMLConfigBuilder创建过程2 Configuration的初始化过程 Configuration作为一个配置类对象,为许多类所共享(许多类的参数就是他),因此它是一个全局共享的配置类。 Configuration类在初始化过程中初始化了许多工具类,注册中心等等,这些类主要是为了以后的应用。 下边是几个Configuration类主要的参数: // <environment>节点的信息 protected Environment environment; // 以下为<原创 2021-02-25 09:40:30 · 278 阅读 · 1 评论 -
mybatis源码分析
XMLConfigBuilder的创建过程 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) { try { XMLConfigBuilder parser = n原创 2021-02-25 09:40:04 · 227 阅读 · 1 评论 -
mybatis源码分析
Mybatis的初始化过程 1 mybatis使用代码 mybatis官网文档 主要流程图 public class MyBatisMain { public static void main(String[] args) { // 第一阶段:MyBatis的初始化阶段,配置各项属性 String resource = "conf/mapperTest.xml"; // 得到配置文件的输入流 InputStream input原创 2021-02-25 09:39:09 · 151 阅读 · 0 评论
分享