1. 准备工作

编写测试代码(具体请参考《Mybatis入门示例》),设置断点,以Debug模式运行,具体代码如下:

  1. )ExecutorType:执行类型,ExecutorType主要有三种类型:SIMPLE, REUSE, BATCH,默认是SIMPLE,都在枚举类ExecutorType里面。

    (2)TransactionIsolationLevel:事务隔离级别,都在枚举类TransactionIsolationLevel中定义。

    (3)autoCommit:是否自动提交,主要是事务提交的设置。

    DefaultSqlSession是SqlSession的实现类,该类主要提供操作数据库的方法给开发人员使用。

    这里总结一下上面的过程,总共由三个步骤:

    步骤一:读取Ibatis的主配置文件,并将文件读成文件流形式(InputStream)。

    步骤二:从主配置文件流中读取文件的各个节点信息并存放到Configuration对象中。读取mappers节点的引用文件,并将这些文件的各个节点信息存放到Configuration对象。

    步骤三:根据Configuration对象的信息获取数据库连接,并设置连接的事务隔离级别等信息,将经过包装数据库连接对象SqlSession接口返回,DefaultSqlSession是SqlSession的实现类,所以这里返回的是DefaultSqlSession,SqlSession接口里面就是对外提供的各种数据库操作。

    MyBatis原理分析之三:初始化(配置文件读取和解析)的更多相关文章

    1. MyBatis原理分析

      MyBatis原理分析   参考博客: 深入理解mybatis原理: http://blog.csdn.net/luanlouis/article/details/40422941 一 . JDBC的 ...

    2. Mybatis 原理分析

      对于入门程序的流程分析 使用过程 读配置文件 读取配置文件时绝对路径和相对路径(web工程部署后没有src路径)都有一定问题,实际开发中一般有两种方法 使用类加载器,它只能读取类路径的配置文件 使用S ...

    3. MyBatis原理分析之四:一次SQL查询的源码分析

      上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: ) { ); ) { throw ne ...

    4. MyBatis源码分析(三):MyBatis初始化(配置文件读取和解析)

      一. 介绍MyBatis初始化过程 项目是简单的Mybatis应用,编写SQL Mapper,还有编写的SqlSessionFactoryUtil里面用了Mybatis的IO包里面的Resources ...

    5. mybatis底层源码分析之--配置文件读取和解析

      现在企业级开发中ssm是很常见的技术标配,mybatis比hibernate轻量了很多,而且学习成本相对较低,简单易上手. 那么,问题来了,简单好用的mybatis底层到底是如何实现的呢?都使用了什么 ...

    6. Mybatis原理分析之二:框架整体设计

      1.引言 本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络.后面文章我们再详细讲解各个组件. 2.整体设计 2.1 总体流程 (1)加载配置并初始化       触发条件:加载配置文件 ...

    7. Mybatis原理分析之一:从JDBC到Mybatis

      1.引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 ...

    8. Mybatis原理分析一 从JDBC到Mybaits

      1.引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 ...

    9. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)

      干了一天的活,还有点时间,给兄弟们写点东西吧. 大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些 ...

    随机推荐

    1. ACCESS --第一章

      一.ACCESS2007的安装 装完整版的office2007办公软件就集成了相应的ACCESS2007 二.主要组成 ACCESS由表.查询.报表.窗体.页.宏和模块组成 1.表 表是存储数据的对象 ...

    2. OpenSuse Caffe CNN库 配置

      参考官方文档:http://caffe.berkeleyvision.org/installation.html 1. 安装CUDA 参考 http://www.cnblogs.com/sunshy/ ...

    3. Ansible-Tower快速入门-7.配置实时事件【翻译】

      配置实时事件 在tower的菜单中,在接近用户菜单处有一个带有颜色的小点,这个带颜色的小点显示tower的实时事件功能的状态 如果这个小点是绿色的,表示运行正常,如果这个小点是红色或橙色,表示实时事件 ...

    4. Unity 摄像机组件

      今天看一下unity3d里面的摄像机是怎么调用和操作的. 打开unity3d新建一个工程.在我们打开工程的时候unity3d会主动添加一个Main Camera,在Hierartchy视图中.点击Ma ...

    5. Python 基礎 - 列表的使用_v2

      接下來繼續講之前沒提到的 copy(),我們依續之前的列表,來做觀察,看看使用 copy() 有什麼不一樣? #!/usr/bin/env python3 # -*- coding:utf-8 -*- ...

    6. 重磅来袭,水木PC客户端全面改版,欢迎使用!

      2016-11-04   下载 最新更新            1.优化帖子中回文内容的显示,采用相比正文较小的字体,以及置灰处理,突出正文.           2.可配置是否隐藏帖子中的IP和修改 ...

    7. .gitignore失效问题解决

      .gitignore失效背景: 本地Mac上使用Unity新建了一个项目,使用git init将项目初始化为仓库,此时commit.随后,加入.gitignore文件,再次commit.然后提交整个仓 ...

    8. Oracle笔记1-数据库概念

      数据库: 基本的概念:数据库管理系统(Database Management System,DBMS):管理数据的一个软件系统关系型数据库管理系统(RDBMS)数据库(Database):存放数据的磁 ...

    9. 使用canvas元素-art方法绘制圆弧

      最近在学习HTML5,发现canvas真的很棒,canvas元素是一种可供绘图的平面,我们用JavaScript对它进行配置和操作.我这里说一下arc方法绘制圆弧,顺便提一下涉及到的基础知识. 首先看 ...

    10. Flask 的扩展

      1. Flask-Script,为Flask程序提供了一个命令行解析器: (venv) $ pip install flask-script 2. Bootstrap(http://getbootst ...