专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 MyBatis运行原理

MyBatis运行原理

更新时间:2022-05-10 10:26:10 来源:动力节点 浏览1343次

MyBatis工作原理解析

mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件(也可以用Java文件配置的方式,需要添加@Configuration)来构建SqlSessionFactory(SqlSessionFactory是线程安全的);

然后,SqlSessionFactory的实例直接开启一个SqlSession,再通过SqlSession实例获得Mapper对象并运行Mapper映射的SQL语句,完成对数据库的CRUD和事务提交,之后关闭SqlSession。

说明:SqlSession是单线程对象,因为它是非线程安全的,是持久化操作的独享对象,类似jdbc中的Connection,底层就封装了jdbc连接。

MyBatis运行原理

详细流程如下:

1.读取MyBatis的配置文件:mybatis-config.xml由MyBatis的全局配置文件进行,配置了MyBatis的运行环境等信息,比如数据库连接信息。

2.加载映射文件。映射文件是SQL映射文件,这个文件是配置操作数据库SQL语句的,需要在MyBatis的配置文件mybatis- config.xml中加载,在.mybatis-config.xml文件中可以添加加载多个映射文件, 每个文件对应数据库中的一个表。

3.构建会话工厂:采用 MyBatis 构建会话工厂,配置环境 SqlSessionFactory等信息 。

4.创建会话对象:由会话工厂创建的 SqlSession 对象,这个对象包含了执行 SQL Statement的方法。

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

6.MappedStatement 对象:在 Executor 接口有一个执行方法 MappedStatement 类型的参数,该参数封装了映射信息,用于Store映射SQL 的语句 id 、参数信息。

7.输入参数映射:输入参数类型可以是 Map 、 List 等,也可以是基本数据类型和 POJO 类型。输入参数映射过程类似于 JDBC 是preparedStatement 对象的参数设置过程。

8.输出结果映射:输出结果类型可以是 Map 、 List 等,也可以是基本数据类型和 POJO 类型。输出映射过程类似于 JDBC 解析结果集的过程。

以上就是关于“MyBatis运行原理”的介绍,大家如果想了解更多相关知识,可以关注一下动力节点的Mybatis视频教程,里面的课程内容由浅到深,通俗易懂,适合小白学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>