三、【源码】Mapper XML的解析和注册使用

源码地址:https://github.com/mybatis/mybatis-3/

仓库地址:https://gitcode.net/qq_42665745/mybatis/-/tree/03-parse-mapperXML

Mapper XML的解析和注册使用

流程:

1.Resources加载MyBatis配置文件生成Reader字符流

2.SqlSessionFactoryBuilder开始引导构建SqlSessionFactory,包括两步:

  • 第一步是在XMLConfigBuilder中使用dom4j解析xml文件,将解析的SQL包装成MappedStatement对象存入Configuration中,然后因为xml的namespace和对应的Dao接口路径相同,使用namespace初始化Dao接口的映射器工厂,也存入Configuration中
  • 第二步,使用Configuration初始化SqlSessionFactory

3.使用SqlSessionFactory的openSession创建一个SqlSession,参数传入Configuration

4.sqlSession.getMapper(IUserDao.class);实际是从Configuration中拿到其映射器工厂,然后使用映射器工厂创建IUserDao的代理对象

5.userDao.queryUserInfoById("u10001");当执行方法时,实际执行的是代理类的invoke方法,在这里会根据xml的sql类型执行SqlSession中的方法,然后返回结果

相关推荐
吴声子夜歌12 分钟前
Guava——集合(二)
java·guava
xiaoqiMikko12 分钟前
一句“为了保持同步”的注释,正好打破了同步 —— Netty 响应错配漏洞实测
java
疯狂打码的少年17 分钟前
【数据库技术】SQL高级查询(分组/排序/聚合函数)
java·数据库·笔记·sql
DDXYcoder19 分钟前
万字解析动态内存从编译到运行
java·前端·算法
坐吃山猪41 分钟前
【多线程】什么时候必须/推荐使用Thread类
java·开发语言
一只小阿乐1 小时前
java 快速上手开发 2
java·开发语言·前端
骇客野人1 小时前
SpringBoot+SpringCloud高并发系统设计、搭建与落地实施方案
java·spring boot·spring cloud
Java小白笔记1 小时前
MyBatis XML Mapper 标签与 CRUD 原理实战
xml·数据库·mybatis
张宇Joaquin1 小时前
灵渠测试工具-urma_perftest
java·开发语言
当战神遇到编程1 小时前
Java 集合框架详解:Collection 与 List 核心用法
java