mybaits接口式编程

Mybatis是接口式编程实现对.xml中sql语句的执行,其过程如下(取自慕课网视频《通过自动回复机器人学Mybatis---加强版》):

1.加载配置信息
2.通过加载配置信息加载一个代理工厂Map,是HashMap的实例
3.这个Map存放的是接口Class与对应的代理工厂,接口作为key,代理工厂作为键值,代理工厂为MapperProxyFactory的实例。
4.通过接口的Class从代理工厂Map取出对应的代理工厂
5.在代理工厂的newInstance()方法中实现一个调用处理器(MapperProxy<T> 的实例)。通过代理工厂实例化一个代理类。
6.用这个代理类生成一个代理实例返回出去

//配置文件中的重要信息全部放在了调用处理器中,在调用处理器的invoke方法中,用method(xml中sql语句的id)作为参数构造一个MapperMethod实例,在该实例中包含了SqlCommand和MethodSignature的实例。SqlCommand实例中又包含了namespace.id,标签的类型type,标签的id(name)。而MethodSignature的实例中则包含了接口的方法的返回类型。

7.通过接口与method获取对应的配置文件中的信息:接口名称.方法名==namespace.id

 

原文地址:https://www.cnblogs.com/zhangcaiwang/p/6733639.html