MyBatis源码学习

 

 MyBatis源码学习

背景

执行一个Sql查询MyBatis做了什么操作?

       //1SqlSessionFactory 创建sqlsession
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //2 这里打开openSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3 getMapper 创建一个 代理对象MapperRegistry.mapperProxyFactory.newInstance(sqlSession);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
      //4 执行查询
        User user = mapper.selectUser(1L);

1.MyBatis执行过程

MyBatis3.5.2源码

1.SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 

public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) {
    try {
      //读取xml 生成一个document
      //通过xpath获取节点内容
      XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);

      //parser.parse() 通过xpath读取document 生成configuration,并且将
      //mapper.java 类和mapper.xml 进行映射并且存放如 hashmap 里面
      //通过解析mapper.xml里面的sql  每个mapper.java 里面的方法生成一个MapperStatement
      return build(parser.parse());
    } catch (Exception e) {
    
    }
  }
1.配置文件解析入口

相关文章:

  • 2021-04-04
  • 2021-07-03
  • 2021-12-27
  • 2021-11-02
  • 2021-11-20
  • 2021-07-29
  • 2021-10-28
  • 2021-08-08
猜你喜欢
  • 2022-01-04
  • 2021-10-03
  • 2021-04-24
  • 2021-06-16
  • 2022-02-13
  • 2022-01-16
  • 2021-09-22
相关资源
相似解决方案