• 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.释放连接资源

         

          

            

  • 相关阅读:
    批量清理java源码的target目录
    前端移动node_modules到其他位置
    oracle物化视图和视图的数据不一致
    百词斩英语单词素材提取、听力练习
    2048自动游戏AI, 最高可以玩出一二十个2048
    switcheroo: Alt+Tab的替代工具、窗口搜索
    为知笔记wiz.editor.md增强
    腾讯北极星 Polaris 试用
    [分布式] 分布式事务、seata
    Mysql查询所有的表名和查询表中所有的字段名
  • 原文地址:https://www.cnblogs.com/qi2332356/p/13508920.html
Copyright © 2020-2023  润新知