Mybatis源码解析
步骤:
-
使用Resources类的方法加载配置文件
in = Resources.getResourceAsStream("sqlconfig.xml");
-
实例化sqlsessionfactorybuild实例化对象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
-
分析上面的build方法,使用XMLConfigBuilder类进行解析
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
-
使用debug进行调试,获到了配置文件中的所有的配置信息
-
sessionFactory的实例化
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
-
在debug中发现一个事务管理
-
会产生多个执行器
-
多个执行器里面的一个默认的执行器会产生一个sqlsession的对象
-
使用sqlsession对象对数据库进行curd的操作,在这里会根据curd的返回值,对上面的事务是提交还是回滚
-
判断事务是否提交,如果事务成功,需要对事务进行提交,如果事务失败,则需要进行事务的回滚。
-
手动提交事务
-
释放资源,根据异常的执行的顺序,先打开的后关闭的原则