1.根据mybatis配置文件和mapper映射文件,初始化出Configuration对象。得到sqlSessionFactory,包含数据库的信息,和所有的mapper路径,mapper接口路径可用包扫描的方式代替 ;
2.sqlSessionFactory.openSession 得到sqlSession,里面已经包含了Configuration以及Executor(defaultExecutorType全局配置决定,默认simple);
3.getMapper,生成Mapper接口对应的MapperProxy的代理类,MapperProxy里面包含DefaultSqlSession;
4.执行增删改查方法:
4.1. 调用Executor;
4.2. 创建StatementHandler,包含参数处理器和结果集处理器;
4.3. 调用StatementHandler的预编译参数以及设置参数值;
4.4. 调用StatementHandler增删改查方法
4.5. ResultSetHandler封装结果返回。