MyBatis详细执行流程的全纪录

网友投稿 1001 2023-01-30

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.printStackTrahttp://ce();

}

}

public static SqlSession getSqlSession() {

return sqlSessionFactory.openSession()http://;

}

}

二、实例化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();

后序

努力去看源码,加以理解分析

并且熟练使用dZkCXMWDYDeBug模式来调试程序,以及查看代码底层是如何实现的。

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Intellij IDEA 关闭和开启自动更新的提示?
下一篇:springboot+websocket+redis搭建的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~