跳到主要内容

7.2 结果处理规则

结果规则用于对查询结果进行后置处理,也可用于存储过程等复杂场景下的结果辅助处理。 这些规则本身不影响 SQL 生成,仅用于指导 dbVisitor 如何映射返回的数据。

规则描述
@{resultSet}配置结果集映射策略(用于存储过程/多结果集)。
@{resultUpdate}标记某个结果为更新计数(非结果集)。
@{defaultResult}配置默认的结果集映射策略。

RESULTSET 规则​

在 存储过程 或 多结果集查询 场景下,用于指导 dbVisitor 如何映射返回的结果集。

语法: @{resultSet, key1 = value1, key2 = value2}

支持场景:

属性说明:

名称类型说明
nameString该结果集在返回 Map 中的名称。
javaTypeClass将结果集映射到的 Java 类型。详见 对象映射。
rowMapperRowMapper使用自定义 RowMapper 处理映射。
rowHandlerRowCallbackHandler使用自定义 RowCallbackHandler 处理每一行。
extractorResultSetExtractor使用自定义 ResultSetExtractor 处理整个结果集。
属性优先级

配置多个映射属性时,按 javaType > rowMapper > rowHandler > extractor 的优先级生效,首先匹配的项优先。


RESULTUPDATE 规则​

将某个返回结果标记为更新计数(而非结果集),用于存储过程中区分返回的结果类型。

语法: @{resultUpdate, name = paramName}

名称类型说明
nameString更新计数在结果中的名称。

DEFAULTRESULT 规则​

@{defaultResult} 相当于 @{resultSet} 的一次执行范围内默认配置。当一个查询返回多个结果集时,可以使用此规则避免为每个结果集重复配置。

语法: @{defaultResult, key1 = value1, key2 = value2}

属性说明: 支持 javaType, rowMapper, rowHandler, extractor,含义同上。