MyBatis mapper 实现原理

实现图解

MyBatis mapper 实现原理_第1张图片

1.sqlSession调用getMapper方法:sqlSession.getMapper(RoleMapper.class)。
2.创建 Mapper 接口的代理对象的工厂,由这个工厂创建代理对象 mapperProxyFactory.newInstance(sqlSession)。
3.创建的mapperProxy是一个InvocationHandler对象,它拦截了所有对代理对象接口方法的调用。
4.通过InvocationHandler的invoke方法去执行sql操作mapperMethod.execute(sqlSession, args)。

总结

1.通过 JDK 动态代理模式,创建 Mapper 接口的代理对象,拦截对接口方法的调用;
2.通过mapper的namespace和方法名去定位执行sql;

你可能感兴趣的:(mybatis,java,sql)