mybatis-源码分析-xxx0xx0xx1版本执行器

JDBC

执行流程

1. 获得链接
2. 预编译SQL
	对SQL进行参数,防止SQL注入
3. 执行SQL
4. 获得Result

在这里插入图片描述

执行器

Statement

功能
执行 static SQL. 此SQL包含了参数信息. 除此之外还有 批处理和加载行数

批处理

addBatch
在发送SQL的时候,可以将SQL积攒起来,一次性发送到数据库
PreparedStatement.addBatch(sql);
PreparedStatement.executeBatch();

加载行数

setFetchSize
一次读取多少行的数据

PreparedStatement

功能
预处理参数. 防止 SQL注入.

String name = "小白";
preparedStatement.setString(1,name);

CallableStatement

功能
存储过程调用. 用来设置存储过程的入参和获得出参.

mybatis 执行流程

SqlSession

功能
会话. CRUD功能通过此接口进行操作
此外还提供提交,关闭会话 功能
一个会话可以调用多次,但是不能跨线程调用

Executor

功能

  1. 完成 CRUD
  2. 缓存维护
  3. 批处理刷新
  4. 关闭执行器
    这几种功能

StatementHandler

功能
底层还是 JDBC
对应 JDBC 中的 Statement
这里是 SimpleStatementHandler
Executor 通过 Statement 提交具体的SQL.
Statement 传输SQL到数据库

助手

通过 参数处理和结果处理,完成对参数的预编译和存储过程的调用

总结

他们都不能跨线程调用.
他们之间的关系是:
SQLSession(1) : Executor(1) : StatementHandler(n)
每执行一次SQL(sqlSession的方法(CRUD))的时候,就会生成一个全新的 StatementHandler

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值