十、【源码】结果处理器

源码地址:https://github.com/mybatis/mybatis-3/

仓库地址:https://gitcode.net/qq_42665745/mybatis/-/tree/10-resultset-processor

结果处理器

这一章和上一章参数处理器类似,首先是在XML解析的时候,顺便解析resultMap和resultType,一般更多的可能用的是resultType,为了实现统一,使用 resultType 的情况下,Mybatis也会创建一个resultMap实体类映射。

使用的时候是在SQL查询出结果,调用resultSetHandler.handleResultSets(ps)处理结果集中,首先会使用ResultSetWrapper对结果数据进行包装,然后创建结果处理器,然后开始解析数据,包括这么几步:

1.遍历结果集,每次拿出一行数据

2.首先拿到解析时的resultMap对象,调用getType拿到类型,反射生成实体类

3.对其属性进行解析并生成元对象

4.遍历实体类中所有属性,通过元对象反射拿到属性对象的类型,再通过TypeHandler根据类型取出对应的类型处理器,然后调用typeHandler.getResult取出不同类型的结果,再使用元对象反射设置到实体类中

5.返回结果
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值