Mapper 映射的内部组成
一般而言,一个映射器是由3部分组成的:
- MappedStatement
它保存映射器的一个节点(select | insert | delete | update)。包括许多我们配置的 SQL、SQL 的 id、缓存信息、resultMap、parameterType、resultType 和 languageDriver 等重要的内容。 - SqlSource
它是提供 BoundSql 对象的地方,是 MappedStatement 的一个属性。 - BoundSql
它是建立 SQL 和参数的地方。它有3个常用的属性:SQL、parameterObject 和 parameterMappings。
映射器的内部组成如图所示:
MappedStatement 对象涉及的东西较多,我们一般不去修改它,因为容易产生不必要的错误。
SqlSource 是一个接口,它的主要作用是根据参数和其他的规则组装SQL。
对于参数和 SQL 而言,主要的规则都反映在 BoundSql 类对象上,BoundSql 会提供3个主要的属性:parameterMappings、parameterObject 和 sql:
parameterObject
它为参数本