Mybatis进阶之简单结果集映射揭秘(八)

一、前言:

​ 通过前文Mybatis进阶之深入了解查询机制(七)我们了解到sql会话的查询最终会交给Executor执行器去进行query查询,Mybatis之门面会话(三)带我们观看了Executor执行器的生成策略,本文将揭秘Executor执行器的简单结果集映射.

二、简单结果集映射时序图

avatar

三、简单结果集映射详解

  • CachingExecutor - 缓存执行器

    avatar

  • BaseExecutor - 基础执行器

    avatar

    avatar

    通过queryFromDatabase进行数据库查询,如下:

    avatar

  • RuseExecutor - 重用执行器

    avatar

  • PreparedStatementHandler - 预处理statement处理器

    avatar

  • DefaultResultSetHandler - 默认结果集处理器

    avatar

    通过handleResultSet进行结果集处理,如下:

    avatar

    通过handleRowValues处理行数据,如下:

    avatar

    通过handleRowValuesForSimpleResultMap处理简单的结果集行映射,如下:

    avatar

    通过getRowValue对行数据进行映射,如下:

    avatar

    avatar

四、行数据映射解析

  • 自动映射

    未配置对象属性和结果集列名的对应关系,自动映射会生成对应的关联,进行对象的属性注入.

    avatar

    avatar

  • 手动映射

    通过注解或着xml配置的对象属性和结果集列映射关系,进行对象的属性注入.

    avatar

    avatar

五、总结

​ 简单结果集映射分为简单结果集自动映射、简单结果集手动映射,这就是mybatis查询一个结果集到java对象的秘密哟~

​ 源码中频繁出现的嵌套子查询是什么呢?让我们慢慢揭秘…

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信