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表达式,简单来说就是可以用表达式来简化开发,减少一些逻辑和配置

  • 相关阅读:
    POJ 3126 Prime Path
    POJ 2429 GCD & LCM Inverse
    POJ 2395 Out of Hay
    【Codeforces 105D】 Bag of mice
    【POJ 3071】 Football
    【POJ 2096】 Collecting Bugs
    【CQOI 2009】 余数之和
    【Codeforces 258E】 Devu and Flowers
    【SDOI 2010】 古代猪文
    【BZOJ 2982】 combination
  • 原文地址:https://www.cnblogs.com/jaifyhome/p/mybatis.html
Copyright © 2011-2022 走看看