【Mybatis 源码】查询实现

本文详述了Mybatis的查询实现过程,从MapperProxy的invoke方法开始,经过MapperMethod的execute(),到调用sqlSession.selectOne(),接着探讨了如何创建StatementHandler、ParameterHandler、resultSetHandler对象,预编译SQL并执行查询。过程中涉及一级、二级缓存,以及SimpleExecutor的doQuery方法,展示了Mybatis如何处理结果集。
摘要由CSDN通过智能技术生成

接下来看mapper.getEmpById(1)是如何实现的
在这里插入图片描述
主要就是调用DefaultSqlSession的增删改查,然后创建StatementHandler对象,再预编译产生prepareStatement对象用PramterHandler设置参数值,再调用增删改查方法用ResultHandler处理结果集

查询流程图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

MapperProxy的invoke方法

mapper是通过动态代理newProxyInstance方法创建的,因此对象调用方法的时候就会执行第三个参数也就是继承Invocationhandler的实现类MapperProxy的invoke方法<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值