![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
文章平均质量分 92
Fighting_Man
这个作者很懒,什么都没留下…
展开
-
七、插件机制
我们看到 DemoPlugin 这个示例类除了实现 Interceptor 接口外,还被标注了 @Intercepts 和 @Signature 两个注解。@Intercepts 注解中可以配置多个 @Signature 注解,@Signature 注解用来指定 DemoPlugin 插件实现类要拦截的目标方法信息,其中的 type 属性指定了要拦截的类,method 属性指定了要拦截的目标方法名称,args 属性指定了要拦截的目标方法的参数列表。原创 2023-02-11 17:04:30 · 736 阅读 · 0 评论 -
六、mybatis与spring的整合
spring整合mybatis分为两个方面,一个是加载配置以及mapper实例的初始化,这一块主要通过SqlSessionFactoryBean以及MapperFactoryBean来实现,另一方面是执行流程,通过SqlSessionTemplate以及SqlSessionInterceptor实现。原创 2023-02-11 17:03:34 · 753 阅读 · 0 评论 -
五、StatementHandler参数绑定、SQL 执行和结果映射处理器
StatementHandler 接口是 MyBatis 中非常重要的一个接口,其实现类完成 SQL 语句执行中最核心的一系列操作。StatementHandler 接口的定义如下图所示:可以看到,其中提供了创建 Statement 对象(prepare() 方法)、为 SQL 语句绑定实参(parameterize() 方法)、执行单条 SQL 语句(query() 方法和 update() 方法)、批量执行 SQL 语句(batch() 方法)等多种功能。原创 2023-02-07 22:28:54 · 588 阅读 · 0 评论 -
四、Executor执行器【无标题】
Executor 接口定义了数据库操作的基本方法,其中 query*() 方法、update() 方法、flushStatement() 方法是执行 SQL 语句的基础方法,commit() 方法、rollback() 方法以及 getTransaction() 方法与事务的提交/回滚相关,clearLocalCache() 方法、createCacheKey() 方法与缓存有关。原创 2023-02-02 23:01:27 · 491 阅读 · 0 评论 -
三、SqlSession的创建以及执行流程
SqlSession是通过SqlSessionFactory创建的,封装了Execcutor对象获取Mapper接口是通过动态代理完成的,使用MapperProxyFactory创建Mapper代理对象,执行的时候通过MapperMethod中封装的SqlCommand获取绑定的sql,通过MethodSignature确定接口的返回值,最终统一调用Execcutor的逻辑完成整个数据库的操作。原创 2023-01-29 19:38:46 · 2648 阅读 · 0 评论 -
Mybatis源码解析二:DataSource数据源负责创建连接以及Transaction的事物管理
数据源创建通过数据源工厂指定,工厂类型是在mybatis配置文件中指定的;数据源获取连接是在Executor执行器获取Statement时调用的事务创建也是通过事务工厂指定,同样是在mybatis配置文件中指定的,Transaction在获取到连接后,再进行设置事物的隔离级别以及是否自定提交。原创 2023-01-08 11:42:44 · 1101 阅读 · 0 评论 -
Mybatis源码解析一: SqlSessionFactoryBuilder以及Configuration解析配置,生成SqlSessionFacroty
SqlSessionFactoryBuilder就是负责解析mybatis配置文件,将解析的配置都存放到Configuration实例中,最后对外提供一个SqlSessionFactory实例。原创 2023-01-07 20:00:45 · 1410 阅读 · 0 评论