SqlSession 什么时候进行与mybatis中核心对象建立联系
在SqlSession调用核心功能的时候建立的联系
SqlSession.insert
DefaultSqlSession
Executor
StatementHandler
SqlSession.update
SqlSession.selectOne()
SqlSession.Delete()
XxxDao是如何执行的
XxxDao dao = sqlSession.getMapper(XxxDao.class);
//XxxDao.class其中的Xxx.Dao接口是没办法进行实例化的,这里肯定是他的实现类,(多态)
那么,XxxDao的实现类在哪里?
用的是动态字节码技术—>类 在JVM运行时创建,JVM运行结束后,类消失

用的动态代理模式
MapperProxyFactory

在什么时候考虑使用动态代理

本文深入探讨了MyBatis中的SqlSession如何在执行insert、update、selectOne和delete等操作时与核心对象建立联系。通过分析DefaultSqlSession、Executor和StatementHandler的调用流程,揭示了SqlSession的工作原理。同时,解释了XxxDao的实现是通过动态字节码技术在JVM运行时创建,利用MapperProxyFactory实现动态代理,确保在运行时动态地生成对应接口的实现类。
1719

被折叠的 条评论
为什么被折叠?



