全程记录MyBatis详细执行流程
2021-07-20 14:19:35
浏览数 (5631)
学习过框架的小伙伴都了解作为持久层框架的 MyBatis 框架,但是对于它的执行过程也只是有个模糊的认识。本文将以实例和大家一起分享 MyBatis 框架详细的执行流程。
Mybatis简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
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模式来调试程序,以及查看代码底层是如何实现的。
总结
到此这篇关于 MyBatis 详细执行流程的文章就介绍到这了,想要列更多相关 MyBatis 框架的其内容请搜索W3Cschool以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!