Mybatis执行流程图
2023-04-21 11:49:02 25 举报
Mybatis执行流程图
作者其他创作
大纲/内容
select|insert|update|delete
使用获取到的代理对象调用自己的方法
否
是
bindMapperForNamespace为命名空间绑定mapper其实就是为每个mapper创建代理工厂
returnsVoid
select
解析<configuration>节点
封装到Configuration
去二级缓存查询
创建执行器,包装上事务功能
返回结束
通过SqlSessionFacory创建SqlSession实例
resultMap标签等
获取事务工厂
解析入参,与方法参数对应
根据mapper接口获取到对应的代理工厂
执行sql
根据事务工厂创建事务
返回单条
flush
是否开启二级缓存
select list取第一条
Insert
去一级缓存查询
解析数据源
解析配置文件,创建SqlSessionFacory
无
returnsCursor
解析mapper标签
使用执行器查询
select one
解析mapper方法形参
查询到
设置参数
returnsMany
delete
创建DefaultSqlSession,将执行器作为参数传进去
解析其它环境配置
update
判断sql类型
封装到MappedStatement
预编译
开始
通过代理工厂创建代理对象
StatementHandler
returnsMap
解析mapper文件
去数据库查询
结果集处理
通过sqlSession获取Mapper
封装到Environment
创建MapperMethod
判断返回类型
执行MapperMethod的execute方法
0 条评论
回复 删除
下一页