Mybatis的底层原理

void queryByID() throws IOException {

        
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        User user = sqlSession.selectOne("queryByID", 1011);
        System.out.println(user);
        sqlSession.close();
    }

  • MyBatis 的底层原理 :
    • 1 Mybatis 配置:sqlmapConfig.xml,此文件作为 Mybatis 的全局配置文件,配置了 Mybatis 的运行环境等信息。mapper.xml 即 sql 映射文件,文件中配置了操作数据库的 sql 语句。此文件需要在SqlMapConfig.xml 中加载。
    • 2 通过 Mybatis 环境等配置信息获得 sqlsessionfactory 即会话工厂
    • 3 由会话工厂创建 sqlsession 即会话,操作数据库需要通过 sqlsession 进行。
    • 4 mybatis 底层自定义了 Executor 执行器接口操作数据库,Executor 接口有两个实现,一个是基本执行器,一个是缓存执行器。
    • 5 Mapped Statement 也是 mybatis 一个底层封装对象,它保障了 mybatis 配置信息及 sql 映射信息等。mapper.xml 文件中一个 sql 对应一个 Mapped Statement 独享,sql 的 id 就是 mapped statement 的id。
    • 6 Mapped Statement 对 sql 执行输入参数定义,包括 Hashmap、基本类型、pojo、Executor 通过 MappedStatement 在执行 sql 前将输入的 java 对象映射到 sql 中,输入参数映射就是 jdbc 编程中对 preparedStatement 设置参数。
    • 7 Mapped Statement 对 sql 执行输出结果进行定义,包括 Hashmap、基本类型、pojo、Executor 通过Mapped Statement 在执行 sql 后将输出结果映射到 java 对象中,输出结果映射过程相当于 jdbc 编程中对结果的解析处理

版权声明:本文为handris原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。