Mybatis3.3.x技术内幕(六):StatementHandler(Box stop here)
神通广大的猴哥SqlSession,把琐事委托给二弟Executor来处理,二弟Executor可不那么傻,于是它又把事情委托给三弟StatementHandler,三弟憨厚老实,本着 Box stop here 的精神,无怨无悔不说,还任劳任怨,于是,一代伟人就此诞生了。 三弟 StatementHandler从跑龙套开始,逐渐崛起,先后担任武术指导、制片、监制等职位,最后,经验丰富的它当上了导演,拍了属于自己的作品:三弟电影,又称3D电影。 有关 Box stop here 的故事,请自行了解。 1. 数据库操作invoke时序图 (Made In Visual Paradigm) 本文重点分析StatementHandler和ParameterHandler是如何与Executor共襄盛举的。( 上图中的execute()失误画错了,应该是executeQuery() ) 2. Executor内使用 StatementHandler模板 Statement stmt; StatementHandler handler; // 判断缓存内是否存在stmt if (...) { // 不存在,就创建一个Statement(可能是Statement、PrepareStatement、CallableStatement) stmt = handler.prepare