Mybatis
文章平均质量分 70
Mybatis的源码分析,查询流程
Oliver486
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mybatis缓存机制
一级缓存 一级缓存的作用域是Executor,实际就是SqlSession,默认开启并且无法关闭, 查询的时候会先判断SqlSession是否缓存存在,如果存在直接走缓存,如果不存在则走数据库 如下操作默认会走缓存: SqlSession sqlSession1 = factory.openSession(true); SqlSession sqlSession2 = factory.openSession(true); StudentMapper studentMapper ...原创 2022-04-24 14:51:46 · 142 阅读 · 0 评论 -
Mybatis动态代理和拦截器的实现
通过mybatis的加载和sql语句的执行过程,咱们不难发现mybatis代码中大量使用了动态代理,比如: 1:Mapper接口代理类,mybatis为所有的mapper接口类都生成了代理接口类 2:SqlSessionTemplate的SqlSession属性 3:Executor的拦截器会生成代理类 4:StatementHandler拦截器会生产代理类 5:ParameterHandler拦截器会生产代理类 4:ResultSetHandler拦截器会生产代理类 接下来我们来看一下四原创 2022-04-21 18:10:23 · 645 阅读 · 0 评论 -
Mybatis Sql执行流程
执行流程图(不包含缓存) 1:使用Mapper接口调用具体方法,会调用到Mapper接口的代理实现类MapperProxy.invok方法 2:MapperProxy.invok根据method信息找到MapperMethod(每一个mapper.xml文件的方法都会对应一个MapperMethod),MapperMethod执行mapperMethod.execute(sqlSession, args),参数sqlSession是sqlSessionTemplate对象 3:MapperMeth原创 2022-04-21 17:06:03 · 915 阅读 · 0 评论 -
Mybatis缓存
一级缓存 一级缓存的作用域是Executor,实际就是SqlSession,默认开启并且无法关闭, 查询的时候会先判断SqlSession是否缓存存在,如果存在直接走缓存,如果不存在则走数据库 如下操作默认会走缓存: SqlSession sqlSession1 = factory.openSession(true); SqlSession sqlSession2 = factory.openSession(true); StudentMapper studentMapper ...原创 2022-04-21 15:41:15 · 765 阅读 · 0 评论
分享