Mybatis的工作流程(进大厂必备)

相关信息


Mybatis几个重要的概念

Mapper配置:

  • 可以使用基于XML的Mapper 配置文件来实现,也可以使用基于Java 注解的MyBatis注解来实现,甚至可以直接使用MyBatis 提供的API 来实现。

Mapper接口:

  • 是指自行定义的一个数据操作接口,类似于通常所说的DAO接口。早期的Mapper接口需要自定义去实现,现在MyBatis 会自动为Mapper接口创建动态代理对象。Mapper接口的方法通常与Mapper 配置文件中的select、 insert、 update、 delete 等XML结点存在一一-对应关系。

**Executor(执行器): **

  • MyBatis 中所有的Mapper 语句的执行都是通过Executor 进行的,Executor 是MyBatis的一个核心接口。

SqlSession:

  • 是MyBatis 的关键对象,是执行持久化操作的独享,类似于JDBC 中的Connetion, Slsessisn 对象完全包含以数据库为背景的所有执行sQl 操作的方法,它的底层封装了JIDBC 连接,可以用Salsession 实例来直接执行被映射的SQl 语句。

SqISessionFactory:

  • 是MyBatis 的关键对象,它是单个数据库映射关系经过编泽后的内存镜像。sisnfacto对象的实例可以通过sisiarovevoier 对象类获得,而SqISessionFactoryBuilder则可以从XML 配置文件或一个预先定制的Cnfguration 的实例构建出。

Mybatis的工作流程

Mybatis的工作流程(进大厂必备)

  1. 首先加载Mapper配置的SQL映射文件,或者是注解的相关SQL内容。

  2. 创建会话工厂,MyBatis 通过读取配置文件的信息来构造出会话工厂( SqlSessionFactory)。

  3. 创建会话。根据会话工厂,MyBatis 就可以通过它来创建会话对象(SqlSession),会话对象是一个接口, 该接口中包含了对数据库操作的增、 删、改、查方法。

  4. 创建执行器。因为会话对象本身不能直接操作数据库,所以它使用了一个叫做数据库执行器(Executor) 的接口来帮它执行操作。

  5. 封装SQL对象。在这一步,执行器将待处理的SQL 信息封装到一个对象中( MappedStatement),该对象包括SQL语句、输入参数映射信息(Java简单类型、HashMap或POJO) 和输出结果映射信息(Java 简单类型、HashMap或POJO)。

  6. 操作数据库。拥有了执行器和SQL信息封装对象就使用它们访问数据库了,最后再返回操作结果,结束流程。