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 编程中对结果的解析处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值