IPersistence
Java手写Mybatis核心功能

设计思路

使用

  • 引入自定义的框架 jar

  • 编写配置文件

    1. dbconfig.xml:数据库配置信息,存放 mapper.xml 位置
    2. mapper.xml:sql 配置信息

框架

  • 加载配置文件:以字节流存储在内存中
    • 创建 Resources 类:InputStrean getResourceAsStream(String path)
  • 创建两个 Bean:容器对象,存放配置文件解析结果
    • Configuration:核心配置类,dbconfig.xml 解析结果
    • MapperStatement:映射配置类,mapper.xml 解析结果
  • 解析配置文件:dom4j
    • 创建 SqlSessionFactoryBuilder:build(InputStream in)
    • 使用 dom4j 解析配置文件,将结果存放在容器对象
    • 创建 SqlSessionFactory 对象:生产 SqlSession 会话对象(工厂模式)
  • 创建 SqlSessionFactory 接口及实现类 DefaultSqlSessionFactory
    • openSession():生产 sqlSession
  • 创建 SqlSession 接口及实现类 DefaultSqlSession
    • 定义 crud 操作
      • selectList()
      • selectOne()
      • update()
      • delete()
  • 创建 Executor 接口及实现类 SimpleExecutor
    • query(Configuration, MapperStatement, Object… params):执行 JDBC 代码