天天看点

手写Mybatis解析1-读取SqlMapConfig.xml1.简要思路分析2.解析SqlMapConfig

1.简要思路分析

     1.1配置文件的编写

                一般存在两种配置文件,分为两份的目的是:利于维护。如果需要修改sql语句,只需要找到针对的映射文件即可

                1)全局配置文件(会加载映射文件)    存放数据库环境参数+声明映射文件地址

                2)映射文件         返回集,sql

     1.2加载配置文件

               加载流程如下:

               1)获取配置文件路径

               2)获取inputSteam

               3)  创建document对象

               4)解析document对象

               5)使用Configuration对象将配置文件进行封装

      1.3开放SqlSesesion接口

              开放CURD的API给JAVA开发者进行使用,不需要频繁的建立JDBC等相关操作

2.解析SqlMapConfig

     使用Dom4j进行XML解析

手写Mybatis解析1-读取SqlMapConfig.xml1.简要思路分析2.解析SqlMapConfig

此处就是按照1.2的流程进行解析(Mapper的基础解析也是如此,不过内部解析有差异)

利用面向对象的思想,将所有的解析都交给独特的类进行解析,不要在此处一次性加载完成。

手写Mybatis解析1-读取SqlMapConfig.xml1.简要思路分析2.解析SqlMapConfig

内部主要有两个部分,一个是Environments部分,一个是Mappers部分,分为两个方法进行解析(Mappers的解析下章见)

手写Mybatis解析1-读取SqlMapConfig.xml1.简要思路分析2.解析SqlMapConfig

注意规范,需要默认ID和env的Id相同才能继续解析

手写Mybatis解析1-读取SqlMapConfig.xml1.简要思路分析2.解析SqlMapConfig

解析配置参数,最终结果是将所有的配置信息都封装到Configuration中,因此Configuration一定存在一个数据源对象

以下是解析对象并创建DataSource对象,放入到Configuration中

手写Mybatis解析1-读取SqlMapConfig.xml1.简要思路分析2.解析SqlMapConfig
手写Mybatis解析1-读取SqlMapConfig.xml1.简要思路分析2.解析SqlMapConfig

GITHUB仓库地址