【MyBatis】创建SqlSession源码剖析

【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对象中

【MyBatis】创建SqlSession源码剖析

 

 

executor是执行器 是MyBatis核心

tcm是事务管理器

【MyBatis】创建SqlSession源码剖析

 

 3.创建SqlSession

【MyBatis】创建SqlSession源码剖析

 

 【MyBatis】创建SqlSession源码剖析

 

 

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

上一篇:Mybatis 作用域和生命周期


下一篇:mybatis学习总结