Mybatis源码

Mybatis源码

1. 手写持久层框架思路

1.1 框架使用端(项目)


引入自定义持久层框架jar包

  • 创建SqlMapConfig.xml配置文件:数据库配置信息,(存放mapper.xml的路径地址)
  • 创建mapper.xml配置文件:存放sql信息,参数类型,返回值类型

1.2 框架本身


本质是对JDBC进行封装

  1. 加载配置文件

    • 创建Resources类,负责加载配置文件,加载成字节数入流,存放到内存中
    • 方法:InputStream getResourceAsStream(String path)
  2. 创建两个JavaBean(容器对象)

    • Configuration:全局配置类,存储sqlMapConfig.xml配置文件解析出来的内容
    • MappedStatement:映射配置类:存储mapper.xml配置文件解析出来的内容
  3. 解析配置文件,填充容器对象

    • 创建SqlSessionFactoryBuilder类
      • 方法:SqlSessionFactory
      • build(InputStream)(1)解析配置文件(dom4j+xpath)封装Configuration,(2) 创建SqlSessionFactory
  4. 创建SqlSessionFactory接口及DefaultSqlSessionFactory

    • 方法:SqlSession openSession() 工厂模式
  5. 创建SqlSession接口和DefaultSqlSession实现类

    • 方法:selectList()...
  6. 创建Executor接口和实现类SimpleExecutor

    • 方法:query(Configuration,MappedStatement,Object),执行底层JDBC代码(数据库和sql配置信息)

Jingxc大约 2 分钟mybatisjava后端javamybatis后端