1.MyBatis源码之MyBatis中SQL语句执行过程
MyBatis源码之MyBatis中SQL语句执行过程
MyBatis源码之MyBatis中SQL语句执行过程
MyBatis编程时主要有两种方式执行SQL语句。
方式一,源码有通过SqlSession接口的格式l格selectList方法调用,进入DefaultSqlSession的站源实现,最终调用executor的网站捕鱼源码 cocosquery方法,使用MappedStatement封装SQL语句。源码有官方源码论坛
方式二,格式l格调用SqlSession接口的站源getMapper(Class type)方法,通过工厂创建接口的网站代理对象,调用MapperProxy的源码有invoke方法,进一步执行MappedStatement,格式l格调用sqlSession的站源方法。
创建动态代理类会执行MapperProxy类中的网站fart源码编译invoke方法,判断方法是源码有否是Object的方法,如果是格式l格直接调用,否则执行cachedInvoker()方法,获取缓存中的拟态个人源码MapperMethodInvoker,如果没有则创建一个,内部封装了MethodHandler。当cacheInvoker返回了PalinMethodInvoker实例后,调用其invoke方法,公司系统源码执行execute()方法,调用sqlSession的方法。
查询SQL执行流程:调用关系明确,主要步骤包括调用关系。
增删改SQL执行流程:主要步骤清晰,最后执行的都是update方法,因为insert、update、delete都对数据库数据进行改变。执行流程为:
具体的执行流程图如下所示。