首页 > 其他分享 >mybatis

mybatis

时间:2022-12-15 14:11:15浏览次数:34  
标签:文件 映射 MyBatis 参数 SQL mybatis

mybatis工作原理

image

(1)读取MyBatis的配置文件。mybatis-config.xml为MyBatis的全局配置文件,用于配置数据库连接信息。
(2)加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis配置文件mybatis-config.xml中加载。
      mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。
(3)构造会话工厂。通过MyBatis的环境配置信息构建会话工厂SqlSessionFactory。 //SqlSessionFactory 对象为单例
(4)创建会话对象。由会话工厂创建SqlSession对象,该对象中包含了执行SQL语句的所有方法。
(5)Executor执行器。MyBatis底层定义了一个Executor接口来操作数据库,它将根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护。
(6)MappedStatement对象。在Executor接口的执行方法中有一个MappedStatement类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL语句的id、参数等信息。
(7)输入参数映射。输入参数类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输入参数映射过程类似于JDBC对preparedStatement对象设置参数的过程。
(8)输出结果映射。输出结果类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输出结果映射过程类似于JDBC对结果集的解析过程。

标签:文件,映射,MyBatis,参数,SQL,mybatis
From: https://www.cnblogs.com/hyanzz/p/16984881.html

相关文章

  • 二、mybatis全局配置文件说明
    中文文档地址:​​https://mybatis.org/mybatis-3/zh/configuration.html​​开始前的准备:本章实列为 ​​mybatis的简介和helloworld ​​中helloworld的实例;测试可以用......
  • SSM整合(spring-springmvc-mybatis)之HelloWorld
    一、目录结构  helloworld(SSM)创建步骤:步骤一:创建一个类型为DynamicWebProject 名称为ssm的项目步骤二:加入jar包:spring核心jar包:commons-logging-1.2.jarspring-bean......
  • Mybatis基础使用
    MybatisMybatis最简单的使用目录结构数据库Sql语句--auto-generateddefinitioncreatetablestudent(idbigintnotnullprimar......
  • mybatis-plus-join mybatis-plus必备神器
    mybatis-plus-join项目地址giteegithub使用方法安装Maven<dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join-boot-sta......
  • 深入理解mybatis原理(八) MyBatis事务管理机制
     MyBatis作为​​Java​​语言的​​数据库​​框架,对​​数据库​​的事务管理是其非常重要的一个方面。本文将讲述MyBatis的事务管理的实现机制。首先介绍MyBatis的事务......
  • 深入理解mybatis原理(一) Mybatis初始化机制详解
     对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。   1.MyBatis的初始化做了什么   2.MyBati......
  • mybatis-plus的通用Service
    mybatis-plus的通用service,实际上进一步封装了CRUD操作,同时方法的命名区分BaseMapper,也就是可以通过继承通用service,就可以使用一些基本的CRUD操作了。如何使用内在......
  • mybatis注解开发
    mybatis注解开发主要是下面4个注解@Select@Insert@Update@Delete001-@Select@Select("select*fromuser")List<User>findAll();002-@Insert@Insert("inser......
  • mybatis一级缓存
    mybatis一级缓存缓存概念存在于内存中的临时数据为什么要使用缓存使用mybatis缓存,减少和数据库的交互次数提高执行效率缓存的使用范围经常查询并且不经常改变的数据的......
  • mybatis-plus的BaseMapper
    顾名思义,BaseMapper就是基础的mapper,我们可以通过继承BaseMapper来实现基础的CRUD功能而无需再写单独的xml文件,这个对于SQL不复杂的场景和表来说非常的友好。基本的使用......