mybatis详细执行流程
一、通过Resource去加载全局配置文件
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
二、实例化sqlSessionFactoryBuilder构造器
三、通过build中XmlConfigBuilder类去解析文件流以及环境和属性
四、 将配置信息存放到Configuration中
五、然后实例化SqlSessionFactory实现类DefaultSqlSessionFactory
此时进入底层实现流程
六、由TransactionFactory 创建一个Transaction事务对象
七、创建执行器Excutor,去执行mapper
八、 创建SqlSession接口实现类DefaultSqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession()
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
九、 实现CURD
十、判断是否执行成功,若没有则回滚到事务提交器
十一、 事务提交
sqlSession.commit();
十二、 关闭
sqlSession.close();
后序
努力去看源码,加以理解分析
并且熟练使用DeBug模式来调试程序,以及查看代码底层是如何实现的。
原文地址:https://www.cnblogs.com/yuyueq
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。