关于mybatis:mybatis源码分析

49次阅读

共计 1163 个字符,预计需要花费 3 分钟才能阅读完成。

一、简略阐明 springboot 与 mybatis 的集成
1.springboot 外围就是主动加载配置,次要是通过 @EnableAutoConfiguration 注解

EnableAutoConfiguration 次要是通过 AutoConfigurationImportSelector 来加载,通过反射加载 spring.factories 中指定的 java 类。Mybatis 引入的主动配置 jar 包,spring.factories 里配置的是 MybatisAutoConfiguration 类,则 springboot 启动时,会主动加载 MybatisAutoConfiguration,初始化时,会加载 mybatis 的配置文件,创立 sqlSessionFactory 等

二、mybatis 执行过程剖析
首选上一段代码,执行整个过程,加载 mybatis 配置文件,创立 sqlSessionFactory 等,获取 mapper 的代理类,以及执行对应的办法

try {
      // 读取配置文件
      Reader reader = Resources.getResourceAsReader("com/mat/example/resource/mybatis-config.xml");
      // 依据 mybatis-config 配置文件,生成对应的 sqlSessionFactory
      SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
      // 通过 sessionFactory 创立 sqlSession,每次操作数据库都是一个 sqlSession
      SqlSession sqlSession = sessionFactory.openSession();
      // 获取 UserMapper 的代理类,代理类外面包含 userMapper.xml 的所有办法,其本质就是创立 jdbc 连贯执行 sql,返回数据
      UserMapper mapper = sqlSession.getMapper(UserMapper.class);
      // 执行对应的办法
      User user = mapper.getUser(1);
      System.out.println(user.getUsername());
    } catch (IOException e) {e.printStackTrace();
    }

下面就是 mybatis 执行的整个过程:

三、mybatis 代码加载执行过程剖析
外围就是创立 SqlSessionFactory 过程,该类有个外部类 Configuration,mybatis 所有的配置以及 mapper.xml 文件的配置信息,都会在 Configuration 外面存着,所有的一切都是为了创立 Configuration
上面咱们来一步一步剖析,外面有什么货色

正文完
 0