zoukankan      html  css  js  c++  java
  • 【MyBatis】创建SqlSession源码剖析

    1.根据将xml配置文件变成输入流,并调用sqlSessionFactoryBuilder的build方法

        static{
            try {
                //使用Mybatis第一步:获取sqlSessionFactory对象
                String resource = "mybatis-config.xml";
                InputStream inputStream = Resources.getResourceAsStream(resource);
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }

    我们来看一下build方法源码

    在build方法里面 调用了XMLConfigBuilder对象 用来解析配置文件流

     public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) {
            SqlSessionFactory var5;
            try {
                XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
                var5 = this.build(parser.parse());
            } catch (Exception var14) {
                throw ExceptionFactory.wrapException("Error building SqlSession.", var14);
            } finally {
                ErrorContext.instance().reset();
    
                try {
                    inputStream.close();
                } catch (IOException var13) {
                }
    
            }
    
            return var5;
        }

    然后实例化SqlSessionFactory

    2.将配置文件信息 保存在Configuration对象中

    executor是执行器 是MyBatis核心

    tcm是事务管理器

     3.创建SqlSession

     

    建立sql语句,如果成功则返回,不成功则到事务管理器

  • 相关阅读:
    Spring AOP 详解
    java 线程的几种状态
    Atomic
    ConcurrentHashMap原理分析
    MySQL存储过程详解 mysql 存储过程
    spring-定时器(2)
    spring-定时器(1)
    spring-线程池(3)
    spring-线程池(2)
    spring-线程池(1)
  • 原文地址:https://www.cnblogs.com/cckong/p/14328640.html
Copyright © 2011-2022 走看看