答: mybatis的执行流程主要分为两大流程,一是解析xml文件,二是进行相应sql执行.
解析xml文件你可以这么回答: 在这个过程中,我们主要是为了获取SqlSession,利用sqlsession去执行相应的sql语句.
- 首先,根据SqlSessionFactoryBuilder的build方法,获取一个DefaultSqlSesionFactory对象,那么在build方法里会对xml文件进行解析,最主要是会对mapper.xml文件里的sql语句进行解析封装成一个MappeStatement对象放在Configuration的Map结构里,其次还有对主配置文件解析,主要通过XMLConfigBuilder类完成.
- 利用DefaultSqlSesionFactory的openSession方法去获取一个SqlSession类型的DefaultSqlSession对象,在这个方法里,主要是利用configuration对象去创造一个Executor.
- 利用SqlSession执行对象的sql语句.那么在执行的过程中,其主要是利用了Executor去执行的.这个Executor底层会调用prepareStatement方法进行预编译,在里面利用parameterHandler 参数处理器对刚才MapperStatement进行参数处理,也就是将用户给的参数设置到sql里去.之后就调用execute方法执行.之后利用resultSetHandler处理器进行结果集的处理.



