我不太喜欢在文章中添加代码,所以我会把我的个人理解写进去,至于源码自己去看,流程如下:
1.在项目启动时会加载mybaits的配置文件,里边包含很多东西(不举例);
2.加载配置文件的时候,会产生一个InputStream流的对象;
3.根据InputStream流对象解析出Configuration对象,然后创建SqlSessionFactory工厂对象;
4.从SqlSessionFactory工厂中创建SqlSession(sqlSession中getMapper(xx.class)获取到xml(DefaultSqlSession.Java)configuration.getMapper()在Configuration.java中调用了mapperRegistry.getMapper(type, sqlSession)在MapperRegistry.java中实现了动态代理来找到执行的sql);
5.从SqlSession中调用Executor执行数据库操作&&生成具体SQL指令;
6.对执行结果进行二次封装;
7.提交事务,返回结果集;
盗图一张:
之前看到非常好的一张mybatis,结果现在找不到了,提醒读者们,看到好的东西一定要收藏一下!!!! 切记切记