• MyBatis详细执行流程


    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模式来调试程序,以及查看代码底层是如何实现的。

    无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己
  • 相关阅读:
    linux的一般命令------附加
    linux(4)----------ssh config详解
    linux(3)--------SSH工具的安装使用
    linux(2)-----新装linux配置
    linux(1)------vmvear虚拟机安装linux
    (3)hadoop单节点配置
    (2)hadoop之-----配置免密码登录
    (1)hadoop之----linux配置jdk环境
    BZOJ 1037 生日聚会(神DP)
    BZOJ 1046 上升序列(LIS变形)
  • 原文地址:https://www.cnblogs.com/yuyueq/p/14591259.html
Copyright © 2020-2023  润新知