记录 粗略阅读mybatis框架中binding包中的几个类

主要的几个核心类

一、MapperProxyFactory

  1. 作用:

    • 用于创建 Mapper 接口的代理对象工厂。在 MyBatis 中,当需要使用 Mapper 接口进行数据库操作时,MapperProxyFactory会根据配置信息和接口的定义,生成一个代理对象。
    • 这个代理对象实现了 Mapper 接口,并在方法调用时将方法调用转发到 MyBatis 的内部执行机制。
  2. 与其他类的关系:

    • MapperProxy类紧密相关,它创建的代理对象通常是MapperProxy的实例。
    • 通过MapperRegistry注册 Mapper 接口,并在需要时为已注册的 Mapper 接口创建代理对象。

二、MapperProxy

  1. 作用:

    • 作为 Mapper 接口的代理对象实现类,实际处理方法调用。在方法调用时,将方法调用转发给MapperMethod对象进行处理并与 MyBatis 的其他核心组件进行交互,完成数据库操作。
  2. 与其他类的关系:

    • 依赖MapperMethod类来解析 Mapper 接口中的方法,并确定要执行的 SQL 语句和参数处理方式。
    • MapperProxyFactory紧密合作,由MapperProxyFactory创建实例。

三、MapperMethod

  1. 作用:

    • 代表 Mapper 接口中的一个具体方法,解析方法的签名和注解,确定要执行的 SQL 类型、参数处理方式和结果映射方式。
  2. 与其他类的关系:

    • MapperProxy在处理方法调用时使用,根据解析得到的 SQL 信息和参数,调用 MyBatis 的执行器(如通过SqlCommand)来执行 SQL 语句。

四、MapperRegistry

  1. 作用:

    • 负责注册 Mapper 接口,并管理 Mapper 接口与代理对象工厂(MapperProxyFactory)之间的关系。
  2. 与其他类的关系:

    • MapperProxyFactory协作,在注册 Mapper 接口时,会创建相应的MapperProxyFactory实例,并将其存储起来,以便在需要时创建代理对象。

五、SqlCommand

  1. 作用:

    • 封装了 SQL 语句的相关信息,包括 SQL 类型(如 SELECT、INSERT、UPDATE、DELETE)和 Mapper 方法的名称等。
  2. 与其他类的关系:

    • MapperMethod使用,在确定要执行的 SQL 语句时,会根据SqlCommand中的信息来构建 SQL 执行的上下文。

总体来说,在 MyBatis 中,这些类相互协作,实现了 Mapper 接口与数据库操作的绑定。MapperProxyFactory创建MapperProxy代理对象,MapperProxy在处理方法调用时依赖MapperMethod解析方法,而MapperRegistry负责管理 Mapper 接口的注册和与代理对象工厂的关系。SqlCommand则为MapperMethod提供 SQL 语句的相关信息,共同完成数据库操作的执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值