MyBatis运行原理

MyBatis作为持久层框架,其主要思想是将程序中的大量sql语句剥离出来,配置在配置文件中,实现sql的灵活配置。这样做的好处是将sql与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改sql。

 

 

  1. 加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。

  2. SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。

  3. SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。

  4. 结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。

 

 

2.4、Mybatis运行总体流程

 

 

  1. 加载配置并初始化 触发条件:加载配置文件 处理过程:将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。

  2. 接收调用请求 触发条件:调用Mybatis提供的API 传入参数:为SQL的ID和传入参数对象 处理过程:将请求传递给下层的请求处理层进行处理。

  3. 处理操作请求 触发条件:API接口层传递请求过来 传入参数:为SQL的ID和传入参数对象 处理过程: 根据SQL的ID查找对应的MappedStatement对象。 根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。 获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。 根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。 释放连接资源。

  4. 返回处理结果将最终的处理结果返回。

 

 
posted @ 2022-04-25 16:35  piaobodeyun0000  阅读(126)  评论(0编辑  收藏  举报