MyBatis中XML映射有哪些标签?

大家好,我是锋哥。

MyBatis 是一个流行的持久化框架,使用 XML 映射文件来配置 SQL 语句与 Java 对象之间的映射关系。在 MyBatis 中,XML 映射文件包含多个不同的标签,每个标签都有特定的功能。以下是 MyBatis XML 映射文件中常用的标签及其功能:

1. <mapper>

  • 描述:这是 MyBatis XML 映射文件的根元素。它定义了一个映射器,并包含其他所有 SQL 语句和配置。

  • 示例

    xml 复制代码
    <mapper namespace="com.example.mapper.UserMapper">
        <!-- SQL 映射 -->
    </mapper>

2. <select>

  • 描述:用于定义一个查询操作,返回结果集合。

  • 属性

    • id:唯一标识符。
    • resultType:指定返回结果的 Java 类型。
    • parameterType:指定传入参数的类型。
  • 示例

    xml 复制代码
    <select id="getUserById" resultType="User" parameterType="int">
        SELECT * FROM users WHERE id = #{id}
    </select>

3. <insert>

  • 描述:用于定义插入操作。

  • 属性

    • id:唯一标识符。
    • parameterType:指定传入参数的类型。
  • 示例

    xml 复制代码
    <insert id="insertUser" parameterType="User">
        INSERT INTO users (name, age) VALUES (#{name}, #{age})
    </insert>

4. <update>

  • 描述:用于定义更新操作。

  • 属性

    • id:唯一标识符。
    • parameterType:指定传入参数的类型。
  • 示例

    xml 复制代码
    <update id="updateUser" parameterType="User">
        UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
    </update>

5. <delete>

  • 描述:用于定义删除操作。

  • 属性

    • id:唯一标识符。
    • parameterType:指定传入参数的类型。
  • 示例

    xml 复制代码
    <delete id="deleteUser" parameterType="int">
        DELETE FROM users WHERE id = #{id}
    </delete>

6. <resultMap>

  • 描述:用于定义复杂的结果映射,可以将结果集中的数据映射到 Java 对象的不同属性。

  • 属性

    • id:唯一标识符。
    • type:指定映射的 Java 类类型。
  • 示例

    xml 复制代码
    <resultMap id="userResultMap" type="User">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="age" column="age"/>
    </resultMap>

7. <sql>

  • 描述:用于定义可重用的 SQL 片段。

  • 属性

    • id:唯一标识符。
  • 示例

    xml 复制代码
    <sql id="userColumns">
        id, name, age
    </sql>

8. <include>

  • 描述 :用于引入 <sql> 标签定义的 SQL 片段。

  • 属性

    • refid:引用的 SQL 片段的 ID。
  • 示例

    xml 复制代码
    <select id="getAllUsers" resultType="User">
        SELECT <include refid="userColumns"/> FROM users
    </select>

9. <parameterMap>(已被弃用)

  • 描述:用于参数映射的定义,但在 MyBatis 3 中已被弃用,现在直接在 SQL 映射中定义参数即可。

10. <discriminator>(复杂映射时)

  • 描述:用于在结果映射中进行类型区分,适用于多态情况。

  • 示例

    xml 复制代码
    <discriminator property="type" javaType="String" column="typeColumn">
        <case value="1" resultMap="resultMapForType1"/>
        <case value="2" resultMap="resultMapForType2"/>
    </discriminator>

11. <collection><association>

  • 描述:用于处理一对多或一对一关系的映射。

  • 示例

    xml 复制代码
    <association property="address" column="address_id" javaType="Address"/>
    <collection property="orders" column="user_id" javaType="List" ofType="Order"/>

通过合理应用这些标签,MyBatis 可以灵活地处理多种数据库操作,提供高效、可读性强的代码结构。

相关推荐
摇滚侠7 小时前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis MyBatis 简单开发 阅读笔记 39
spring boot·笔记·mybatis
java1234_小锋8 小时前
MyBatis-Plus 3.5.15 已全面支持 Spring Boot 4.0 及 Jackson 3.0
java·spring boot·mybatis
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis 使用 MyBatis-Plus 阅读笔记 40
spring boot·笔记·mybatis
spencer_tseng1 天前
[j2cache ehcache.xml]/tmp/.ehcache-diskstore.lock (Permission denied)
xml·linux·python·ehcache·[j2cache
NeverFear7921 天前
【黑马点评】短信登录
java·redis·tomcat·intellij-idea
摇滚侠1 天前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis MyBatis 概述 阅读笔记 37
spring boot·笔记·mybatis
摇滚侠1 天前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis 整合 MyBatis 阅读笔记 38
spring boot·笔记·mybatis
DevOpenClub2 天前
PDF 多格式解析如何避免混用输出:TEXT、HTML、XML 与 TAG 数据契约
xml·前端·数据库·pdf·html
迪飞特科技2 天前
《MyBatis 批量插入性能优化的 5 个关键参数配置》
android·性能优化·mybatis
Java小白笔记2 天前
MyBatis XML Mapper 标签与 CRUD 原理实战
xml·数据库·mybatis