Mybatis的一些主要类的说明

1.TypeAliasRegistry

	private final Map<String, Class<?>> TYPE_ALIASES = new HashMap<String, Class<?>>();
		1.1)主要存储不同Java类型的别名的汇总
		1.2)操作数据库的数据源事务管理器
		1.3)操作数据库的连接池配置
		1.4)Mybatis日志管理工具类
        ....

2.MapperRegistry

 	private final Map<Class<?>, MapperProxyFactory<?>> knownMappers 
 					= new HashMap<Class<?>, MapperProxyFactory<?>>();
	 key值为 定义的*Mapper接口的类型,value值为*Mapper接口的动态代理类 MapperProxyFactory 

	 2.1) 如果mybati-config.xml文件中mapper节点配置的是
	 	<mapper resource="mapper/UserMapper.xml"/>
	 	解析步骤:
	 	  2.1.1) 把*Mapper.xml中的信息封装到Configuration类中的属性mappedStatements容器中
	 	  2.1.2) 根据*Mapper文件中mapper的namespace属性的值,来初始化MapperRegistry类中
	 	  的knownMappers容器
	 2.2) 如果mybati-config.xml文件中mapper节点配置的是
	 	<mapper class="com.roger.mybatis.mapper.UserMapper"/>
	 	解析步骤:
	 	   2.2.1) 直接根据class属性的值,得到*Mapper接口的类型,然后初始化MapperRegistry类中
	 	   的knownMappers容器
	 	   2.2.2) 然后通过上面*Mapper的类型,得到接口的全路径名称 然后添后缀.xml拼接成*Mapper
	 	   接口对应的xml文件
	 	   2.2.3) 根据2.2.2得到的xml文件来解析封装到Configuration类中的属性mappedStatements容器中

3.MappedStatement

	3.1) 资源文件路径  -- resouce ,就是在配置文件中通过xml文件来配置*Mapper的
	3.2) namespace + 方法名 --> id
	3.3) sql语句 -->sqlSource
	3.4) sql查询的结果接映射成的java类型 resultMaps
	3.5) sql语句命令类型SELECT,INSERT... --->sqlCommandType

4.MapperProxyFactory

	4.1) *Mapper接口类型
	4.2) Map<Method, MapperMethod> methodCache ; 容器key值是当前执行的方法的方法类型

5.MapperMethod

	5.1) sql语句命令类型---SELECT,INSERT.... --->由MappedStatement类来构造
	5.2) 方法签名 -->接口方法的返回类型,参数解析器等

猜你喜欢

转载自blog.csdn.net/lihongtai/article/details/85045118