0
点赞
收藏
分享

微信扫一扫

mybatis (整体架构) (一)


MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。


文章目录

  • ​​1.mybatis架构​​
  • ​​2.接口层​​
  • ​​3.数据处理层​​
  • ​​4.支撑层​​
  • ​​5.mybatis的调用流程​​

1.mybatis架构

mybatis (整体架构) (一)_java

分为3层: 1.接口层 2.数据处理层 3.框架支撑层

2.接口层

接口层是对外的的api,主要使用sqlSession接口,通过​​sqlsession接口​​​、​​mapper接口​​,开发人员可以通知mysql调用哪一条sql以及相关参数

sqlsession接口使用方式

使用传统的Mybatis提供的Api接口, 根据Statement Id使用接口

mybatis (整体架构) (一)_java_02

mapper接口使用方式

jdk动态代理的方式

mybatis (整体架构) (一)_数据处理_03

3.数据处理层

根据调用的请求完成一次的数据库操作:

Sql查找:参数的映射, ​​ParameterHandler​

Sql解析: ​​SqlSource​

Sql执行: ​​Executor​

执行结果映射处理: ​​ResultSetHandler​

4.支撑层

为上层的数据处理层提供基础的支撑:

mybatis和数据库的​​连接方式管理​

mybatis​​事务的管理​

sql和xml映射方式管理,​​配置的管理​

mybatis​​缓存管理​

5.mybatis的调用流程

mybatis (整体架构) (一)_数据处理_04

​SqlSession​​: 接收开发人员的statement id和参数,并返回查询结果

​Executor:​​ 执行器,是mybatis核心的调度器,负责sql动态语句的生成和参数,查询缓存的维护

​StatementHandler​​: 负责jdbc和statement的交互,包括statement设置参数、结果转化

​ParameterHandler​​: 将用户传入的参数转化为statement需要的参数

​ResultSetHandler​​: 将jdbc返回的ResultSet结果转化为List类型集合

​TypeHandler​​: 负责java数据类型和jdbc数据类型进行转化

​MappedStatement​​: 维护了一条<select|update|delete|insert>节点的封装

​SqlSource​​: 根据用户传递的parameterObject, 动态的生成Sql,将信息封装到BoundSql对象中

​BoundSql​​: 动态生成的Sql语句以及对应的参数信息



举报

相关推荐

0 条评论