mybatis基础知识积累

一、myBatis

   1.mybatis是基于ORM(对象、关系映射数据库)半自动轻量级框架。

     优点:支持定制化sql,存储过程,高级映射,帮我们省略了所有的JDBC操作以及手动设置参数和结果集,支持XML和注解两种配置模式。

   2.mybatis缓存

     1.一级缓存:sqlsession级别   HasMap结构存储缓存数据  不同sqlsession之间缓存数据区域互不影响。

     2.二级缓存:mapper级别,多个sqlsession去操作同一个mapper的sql语句,sqlsession可以共用二级缓存,二级缓存是跨sqlsession的。 

      PS:mybatis默认开启一级缓存

   3.mybatis架构设计

     1.mybatis架构分为三层:

        1.API接口层:提供给外部使用的接口API ,主要用来与数据库交互。

          a.传统mybatisAPI 接口;

          b.使用Mapper代理方式;

        2.数据处理层:负责 SQL 查找,SQL解析 SQL 执行,执行结果映射等

        3.基础支撑层:负责基础功能支撑,连接管理。事务管理,配置加载 和缓存管理。

     2.主要构件

        a.sqlsession:Mybatis顶层API接口  与数据库进行交互操作

        b.Executor:Mybatis执行器,Mybatis调度的核心,负责SQL语句生成和查询缓存与维护。

        c.StatementHandler:封装了JDBC Statement操作,设置参数,结果集转成List集合。

        d.ParameterHandler:负责对用户传递的参数转换成JDBC Statement所需参数。

        c.ParameterHandler:负责将JDBC返回的结果集对象转成List类型集合。

        e.TypeHandler:负责JAVA数据类型和JDBC数据类型之间的映射和转换。

        f.MappedStatement:CRUD节点封装

        g.SqlSource:根据用户传递的参数动态生成SQL语句,将信息封装到Boundsql对象,并返回。

        h.BoundSql:动态生成的sql语句以及响应的参数信息

     3.总体流程(执行原理)

        1.加载配置文件并初始化:  XML文件与注解

        2.接收调用请求:调用mybatis API接口   为sql的id传入参数对象。

        3.处理过程:将请求传递给下层的请求处理层进行处理。

        4.处理操作请求:a.根据sqlId找到对应MapperStatsment对象

                b.根据传入参数对象解析MapperStatsment对象 得到要执行的sql与传入参数。

                c.获取数据库连接,根据最终的sql语句和执行传入参数到数据库执行,得到执行结果。

                d.根据mapperstatement对象中结果映射配置对象结果进行转换处理,得到最终结果。

        5.释放连接资源

     

      

        

原文地址:https://www.cnblogs.com/qi2332356/p/13508920.html