Mybatis中的Mapper接口层和mapper文件如何工作的?

Posted on 2021-09-15 23:16  清烟无瘾  阅读(286)  评论(0)    收藏  举报

1、Mybatis中会将<select>、<update>、<delete>、<insert>转换为MapperStatement对象

2、同一个 namespace 下的 mapper接口 与 XML文件中会维护一个Map,以接口 + 方法名 作为 key、以方法名与id值相同的MapperStatement作为value。

3、Mapper接口是没有实现类的,Dao 接口的工作原理是 JDK 动态代理,MyBatis 运行时会使用 JDK 动态代理为 Dao 接口生成代理 proxy 对象,代理对象 proxy 会拦截接口方法,转而执行MappedStatement所代表的 sql,然后将 sql 执行结果返回。