-
parameter方法实现
MyBatis的执行流程
Sqlsession (会话层面,门面模式)-》 Executor(执行器,模板方法,doQuery和query)-》 StatementHandler(JDBC处理器)
JDBC分为三部分
-
获取Statement,声明Statement
-
设置Sql参数
-
执行sql
而StatementHandler其实也是去执行这三部分事情
三部分对应关系
一个SqlSession只有一个Executor,而StatementHandler则是根据执行的Sql数量决定,并且是要查询数据库才会有StatementHandler,如果走了缓存是不会生成StatementHandler的
下面就来看一下这个StatementHandler
StatementHandler为JDBC处理器,底层实现就是JDBC,使用JDBC来构建Statement并设置参数,然后使用State