在MyBatis的XML映射文件中,有多种标签用于定义SQL映射和处理结果集。以下是一些主要的标签类别及其用途:
顶级元素(通常作为根元素直接子节点)
<cache>
:配置缓存策略。<resultMap>
:定义结果集映射规则,将数据库查询结果与Java对象属性进行映射。<sql>
:定义可重用的SQL片段,可以被其他语句引用。<insert>
:映射插入操作,包含INSERT SQL语句。<update>
:映射更新操作,包含UPDATE SQL语句。<delete>
:映射删除操作,包含DELETE SQL语句。<select>
:映射查询操作,包含SELECT SQL语句。
动态SQL标签
这些标签用于构建动态SQL语句,可以根据条件参数动态生成不同的SQL。
<if>
:根据条件包含或排除SQL片段。<choose>
,<when>
,<otherwise>
:类似于Java中的switch-case结构,根据条件选择执行不同的SQL片段。<where>
:用于简化WHERE子句的构建,自动去除多余的“AND”关键字。<set>
:用于动态构造SET子句,适用于UPDATE操作。<foreach>
:遍历集合,在SQL中循环插入值,常用于批量操作或IN条件。<trim>
,<merge>
: 对SQL片段进行前后空格或某些字符的去除、合并等操作。<bind>
:绑定变量到上下文,供后续SQL使用。
其他不再推荐使用的标签
<parameterMap>
:已废弃,用于旧版的参数映射,现代MyBatis推荐直接在#{}
中使用参数名。
特殊用途标签
<selectKey>
:在插入操作后立即执行一个SELECT语句以获取自动生成的关键字(如序列ID或IDENTITY列),主要用于不支持自动返回主键值的数据库系统。
请注意,随着MyBatis版本的迭代,部分标签的功能可能会有所变化或者新增标签。上述信息基于截至2023年的MyBatis版本
。