1.MyBatis源码之MyBatis中SQL语句执行过程
MyBatis源码之MyBatis中SQL语句执行过程
MyBatis源码之MyBatis中SQL语句执行过程
MyBatis编程时主要有两种方式执行SQL语句。动态
方式一,生生成通过SqlSession接口的成源selectList方法调用,进入DefaultSqlSession的码动实现,最终调用executor的源码用火山安卓源码下载query方法,使用MappedStatement封装SQL语句。动态d3.js 源码去哪里找
方式二,生生成调用SqlSession接口的成源getMapper(Class type)方法,通过工厂创建接口的码动代理对象,调用MapperProxy的源码用invoke方法,进一步执行MappedStatement,动态调用sqlSession的生生成方法。
创建动态代理类会执行MapperProxy类中的成源剑网三排队器源码invoke方法,判断方法是码动否是Object的方法,如果是源码用直接调用,否则执行cachedInvoker()方法,获取缓存中的益盟黄金分割线源码MapperMethodInvoker,如果没有则创建一个,内部封装了MethodHandler。当cacheInvoker返回了PalinMethodInvoker实例后,调用其invoke方法,顾比动态倒数线通达信源码执行execute()方法,调用sqlSession的方法。
查询SQL执行流程:调用关系明确,主要步骤包括调用关系。
增删改SQL执行流程:主要步骤清晰,最后执行的都是update方法,因为insert、update、delete都对数据库数据进行改变。执行流程为:
具体的执行流程图如下所示。