Mybatis的Mapper映射文件中常用标签以及作用

spring782 / 2024-10-15 / 原文

1.SqlMapConfig 标签
SqlMapConfig 标签是 Mybatis 配置文件中的根标签,它用于配置 Mybatis 的全局属性,包括数据库连接信息、类型别名、事务管理器等
1. properties:用于指定外部属性文件的位置,可以用来配置数据库连接信息等敏感信息。

2. settings:用于配置 Mybatis 的全局属性,包括缓存、语句执行器等。

3. typeAliases:用于配置类型别名,方便在 SQL 映射文件中使用简单的类名代替完整的类名。

4. typeHandlers:用于配置类型处理器,用于将数据库中的数据类型转换成 Java 对象或将 Java 对象转换成数据库中的数据类型。

5. objectFactory:用于指定对象工厂,用于创建结果对象。

6. plugins:用于配置插件,可以在 SQL 执行过程中拦截并修改 SQL 语句或结果集。

7. environments:用于配置环境,包括数据源和事务管理器。

 8. mappers:用于指定 SQL 映射文件的位置或 Mapper 接口的位置。

2.Mapper 标签
Mapper 标签是 Mybatis 中最重要的标签之一,它用于描述 SQL 映射关系。Mapper 标签有以下属性:

  1. namespace:指定 Mapper 接口的完整路径名。

  2. resultMap:指定结果映射关系,将查询结果映射成 Java 对象。

  3. parameterMap:指定参数映射关系,将 Java 对象映射成 SQL 参数。

  4. sql:定义可重用的 SQL 片段。

  5. insert、update、delete、select:定义对应的 SQL 语句及参数映射关系。
    ResultMap 标签
    ResultMap 标签用于描述查询结果集与 Java 对象之间的映射关系。ResultMap 标签有以下属性:

    1. id:指定 ResultMap 的唯一标识符。

    2. type:指定映射的 Java 对象类型。

    3. extends:指定继承的 ResultMap。

    4. discriminator:用于多表关联查询时进行分组判断。

    5. constructor、id、result、association、collection:用于定义映射关系。
      ParameterMap 标签
      ParameterMap 标签用于描述 Java 对象与 SQL 参数之间的映射关系。ParameterMap 标签有以下属性:

  6. id:指定 ParameterMap 的唯一标识符。

  7. type:指定映射的 Java 对象类型。

  8. parameter、result、parameterMap、resultMap:用于定义映射关系。
    Sql 标签
    Sql 标签用于定义可重用的 SQL 片段,可以在 SQL 映射文件中多次引用。Sql 标签有以下属性:

  9. id:指定 Sql 片段的唯一标识符。

  10. databaseId:指定 Sql 片段适用的数据库类型。

  11. lang:指定 Sql 片段使用的脚本语言。

  12. statementType、parameterType、resultType:用于定义 Sql 片段的类型信息。
    Insert、Update、Delete、Select 标签
    Insert、Update、Delete、Select 标签分别对应 SQL 语句中的插入、更新、删除和查询操作。这些标签都有以下属性:

  13. id:指定 SQL 语句的唯一标识符。

  14. parameterType:指定输入参数类型。

  15. resultMap:指定结果映射关系。

  16. flushCache、useCache:控制缓存行为。

  17. timeout:指定 SQL 执行超时时间。

  18. statementType:指定 SQL 类型。

  19. keyProperty、keyColumn:仅对插入操作有效,用于获取自动生成的主键值。

动态SQL标签
if
where
choose
when
otherwise
foreach