zoukankan      html  css  js  c++  java
  • 01.Mybatis原理

    Mybatis实现原理,步骤如下:

    1.构建SqlSessionFactory过程

    SqlSessionFactory接口是Mybatis操作数据库的入口,相当于JDBC Connection 类型,它提供创建 Mybatis 核心接口SqlSession

    创建过程:

    首先 XMLConfigBuilder 解析xml 配置文件 ,生产 Configuration对象,所有的配置信息

    都会解析到Configuration里面

    然后 Configuration对象去创建 SqlSessionFactory实现类 DefaultSqlSessionfactory

    InputStream inputStream = Resources.getResourceAsStream(resource)

    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder.build(inputStream);

    2. 生产SqlSession sqlSessionFactory.openSession();

    SqlSession Mybatis实际的操作数据库对象,事务,执行器都是在创建SqlSession是生产。

    创建步骤:

    第一步是生成事务工厂对象 TransactionFactory,在事务工厂中创建事务对象。

    第二步生成执行器Executor,执行器有三种类型SIMPLEREUSEBATCH

    SIMPLE:常规执行器,默认就是此类型执行器,每次执行都会创建一个statement,用完后关闭

    REUSE:可重用执行器,statement存入map中,操作map中的statement而不会重复创建statement

    BATCH:批处理执行器,doUpdate预处理存储过程或批处理操作,doQuery提交并执行过程

    第三步就是生成SqlSession的实现类DefaultSqlSession

    3. SqlSession 通过映射器,执行操作

    映射器是通过动态代理来实现的,通过动态代理,生成Mapper的实现类,和实际的执行方法,执行sql

    下篇代理模式,顺便谈SqSession 映射器原理

    流程图如下:

    .Spring框架Runtime介绍,如图

    1.1 Test: Spring提供测试功能

     

    1.2 Core ContainerSpring核心容器,Spring启动的基本条件,

    1.2.1 Beans:负责Spring创建类,对象,管理对象包

    1.2.2 CoreSpring核心类

    1.2.3 Context:上下文参数,获取外部资源,管理注解等

    1.2.4 SpEL(expression.jar)SpEL表达式语言包,是一种可以与基于Spring运行时对象交互的东西

    类似于ognl表达式,简单来说就是可以用表达式来简化开发,减少一些逻辑和配置

  • 相关阅读:
    旋转数组的最小值
    用堆栈实现队列
    二叉树的重建
    从尾到头打印链表
    实现替换空格
    java获取在各种编码下中文及英文的字符个数
    java定义一个二维数组
    java计算某个坐标是否在范围内
    java调用百度地图API
    map在遍历数据的过程中删除数据不出错
  • 原文地址:https://www.cnblogs.com/jaifyhome/p/mybatis.html
Copyright © 2011-2022 走看看