关于mybatis:mybatis源码分析

一、简略阐明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
上面咱们来一步一步剖析,外面有什么货色

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理