Java相关

Mybatis - 初始化过程

2020-04-12  本文已影响0人  万福来

mybatis 的配置信息都是存储在 mybatis-config.xml 文件中的。作为配置信息肯定只需要读取一次就够了,问题是读取之后 mybatis 是如何维护的呢?很简单,mybatis 框架直接使用了一个 Configuration 对象来维护所有的配置信息。

Mybatis 初始化过程

一般我们会这么获取 SqlSession。然后通过 SqlSession 获取我们的 mapper 代理对象,执行接口中的方法。

Reader re ader = Resources.getResourceAsReader( "mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sessionFactory.openSession(true);
UserDao userDao = sqlSession.getMapper(UserDao.class);
  1. 获取输入流;
  2. 获取 SqlSessionFactory;
  3. 获取 SqlSession;
    mybatis 初始化过程就是获取 SqlSessionFactory 的过程


    image.png

    如上图所示,mybatis 初始化主要经过以下几步:

## SqlSessionFactory.java

public SqlSessionFactory build(Reader reader) {
    return build(reader, null, null);
}

public SqlSessionFactory build(Reader reader, String environment, Properties properties) {
    try {
        XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties);
        return build(parser.parse());
    } catch (Exception e) {
        throw ExceptionFactory.wrapException("Error building SqlSession.", e);
    } finally {
        ErrorContext.instance().reset();
        try {
            reader.close();
        } catch (IOException e) {
        // Intentionally ignore. Prefer previous error.
        }
    }
}

public SqlSessionFactory build(Configuration config) {
    return new DefaultSqlSessionFactory(config);
}
上一篇 下一篇

猜你喜欢

热点阅读