MyBatis的执行过程

MyBatis的执行过程:

(1)读取MyBatis配置文件mybatis-config.xml

(2)加载映射文件

(3)构建会话工厂SqlSessionFactory

(4)创建SqlSession对象

(5)创建Executor接口的实例。

MyBatis底层定义了一个Executor接口来操作数据库,可以根据SqlSession传递的参数动态生成需要执行的SQL语句,同时负责查询缓存的维护。

MyBatis给Executor接口提供了多个实现类。

(6)创建MappedStatement对象

Executor接口操作数据库的方法中都有一个MappedStatement类型的参数,此参数封装了映射信息,一个SQL元素对应一个MappedStatement对象,SQL元素的id就是MappedStatement的id。

(7)输入参数映射

将输入的参数(基本类型、POJO类型、List类型、Map类型)映射到SQL语句中。

(8)输出结果映射

将结果集映射到指定的数据类型(基本类型、POJO类型、List、Map)。

原文地址:https://www.cnblogs.com/chy18883701161/p/12156016.html

时间: 2024-11-08 16:46:46

MyBatis的执行过程的相关文章

一图看懂mybatis执行过程

一图看懂mybatis执行过程,不再懵B了 原文地址:https://www.cnblogs.com/AlexQY/p/9447953.html

(转)logback 打印Mybitis中的sql执行过程

场景:在程序开发过程中经常需要跟踪程序中sql语句的执行过程,在控制台打印出sql语句和对应的参数传递就能够更快的定位错误! 原文出处:http://www.cnblogs.com/beiyeren/p/4196134.html 这里所采用的日志框架为logback 1 不同版本的Mybitis对应不同的控制策略 1.1 myBatis3.0.6左右的版本时 打印sql的时候只需要配置如下属性: <logger name="java.sql.Connection" level=&

MyBatis的初始化过程。

对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程. 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置文件创建Configuration对象的过程 3. 手动加载XML配置文件创建Configuration对象完成初始化,创建并使用SqlSessionFactory对象 4. 涉及到的设计模式 一. MyBatis的初始化做了什么 任何框架的初始化,无非是加载自己运行时所需要的配置信息.MyBati

Mybatis详细配置过程

Mybatis详细配置过程 1. mybatis 是一个 基于java 的持久层框架..内部封装了jdbc ,使开发者 只需 关注SQL语句本身,而不用花精力去处理诸如注册驱动.创建connection 配置Statement等繁杂过程. Mybatis 拖过xml 或注解的方式 将要执行的各种statement 配置起来. 并通过java对象和statement中的SQL的动态参数进行映射最终生成sql语句.最终由mybatis框架执行SQL 并将结果映射成java对象并返回... 2. 下载

jsp的组成和执行过程

jsp由以下五个组成: Html静态页面 指令:  <%@  xxx  %> 小脚本:<%   xxx   %> 表达式:<% =       %> 声明:  <%!   xxx  %> 注释: html注释 <!-- html注释 -->  jsp注释 <%--jsp注释 --%> 脚本中的注释(java注释) /* 多行注释 */ //单行注释   sql注释 -- 执行过程: 翻译阶段 编译阶段 执行阶段 翻译   编译   执

一个C#程序的执行过程

可能很多人都知道我们把程序打包成dll就丢出去了,但是里面的具体的执行过程是怎么样的呢. 程序集是由元数据和IL组成的.IL是和CPU无关的语言,是微软的几个专家请教了外面的编译器的作则,开发出来的.IL比大多数机器语言都要高级一点.IL能够访问和操作对象类型,并提高了指令来初始化对象,调用对象上的虚方法以及直接操作数组元素. 比如下面这个例子 class Program { static void Main(string[] args) { Console.WriteLine("Hello&q

mysql(1)—— 详解一条sql语句的执行过程

SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同.这有点类似于java中接口的作用,一个接口可以有不同的实现类,不同的实现类对于接口中方法的实现方式可以不同,结果可以相同.这里SQL语言的作用就类似于java中的接口,数据库就类似于java中接口的实现类,SQL语句就类似于java接口中的方法.不同的是java中

高程(4):执行环境、作用域、上下文执行过程、垃圾收集、try...catch...

高程三 4.2.4.3 一.执行环境 1.全局执行环境是最外层的执行环境. 2.每个函数都有自己的执行环境,执行函数时,函数环境就会被推入一个当前环境栈中,执行完毕,栈将其环境弹出,把控制器返回给之前的执行环境. 二.作用域 1.每个执行环境,都对应一个自己的作用域. 2.每个执行环境,都能访问上一级的父级.父父级....作用域,称为 "作用域链" 3.执行代码时,会按照标识符沿着作用域链一级一级向上查找.如果找不到,则会报错 *标志符:执行时,使用到的变量或函数 三.上下文执行过程

使用MyBatis对表执行CRUD操作

一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-ma