mybatis
该用户昵称非法
这个作者很懒,什么都没留下…
展开
-
mybatis执行过程分析
装载到spring bean容器把扫描到的mapper加载到beanfactory中BeanDefinition Map中通过修改BeanDefinition 使用MapperProxyFactory 创建mapper的代理对象加载到spring bean容器中执行sql过程通过MapperProxy代理对象调用MapperMethod 执行sql查询public Object...原创 2019-01-14 16:36:24 · 515 阅读 · 0 评论 -
sqlsession
生命周期MapperMethod 中execute方法需要传递一个sqlsession ,这个sqlsession属于SqlSessionTemplate类型,在SqlSessionTemplate生成中会初始化生成一个代理对象如图1,SqlSessionInterceptor中invoke方法负责sqlSession 的创建及销毁 private class SqlSessionIn...原创 2019-01-15 14:10:55 · 736 阅读 · 0 评论 -
Executor
继承关系CachingExecutor采用装饰器模式给exector添加缓存的功能sqlsession中exector的类型在生成sqlsession的过程中会调用Configuration中newExector方法生成CachingExecutor,被装饰的Executor根据类型进行创建CachingExecutor 中执行的过程先判断缓存,再采用内部的Executor执行数据库操...原创 2019-01-15 14:50:44 · 529 阅读 · 0 评论 -
StatementHandler
继承关系RoutingStatementHandler会根据MappedStatement中StatementType属性进行创建StatementHandlerRoutingStatementHandler中StatementHandler的类型真正与数据库交互的StatementHandlerSimpleStatementHandler 中执行数据库查询后把查询结果交给resul...原创 2019-01-15 15:15:03 · 342 阅读 · 0 评论 -
mapper注入spring的实现过程
定位注解方式 根据MapperScan里的内容找到basePackages加载MapperScannerRegistrar里registerBeanDefinitions方法通过ClassPathMapperScanner的doScan方法进行扫描basePackages。ClassPathMapperScanner继承spring中ClassPathBeanDefinitionScann...原创 2019-01-16 15:39:30 · 2225 阅读 · 0 评论