- SqlSession 接口,主要是封装了增删改查等一系列方法
- DefaultSqlSession 该类是对一系列调用的封装。该类不是线程安全的,实际在用的时候初始化,在结束后销毁。比如说在使用spring后的mybatis,项目启动的时候,不会和该类有任何关系,只有在调用的时候,才会新建和销毁该对象。
- SqlSessionTemplate ,该类实现SqlSession接口,封装各种方法,该类是线程安全的,当发生执行调用的时候,在该类的方法内部会new DefaultSqlSession。并且该类是作为MapperProxy的属性存在,以此委托接口的方法调用。
- MapperProxy,mybatis的接口会有一个代理类,实际上就是该类。当发生Mapper接口调用的时候,实际上调用的是该类的invoke方法,该类会记录代理的接口类,还会methodCache自己的所有方法。
网友评论