包括以下几个方面:
- 命名空间定义:
<mapper>
标签中指定命名空间,通常是对应 Mapper 接口的全限定名。
<mapper namespace="com.example.mapper.UserMapper">
- 结果映射定义:使用
<resultMap>
标签定义结果映射,将查询结果映射到 Java 对象的属性上。
<resultMap id="UserResultMap" type="com.example.model.User">
<result property="id" column="id" />
<result property="name" column="name" />
<!-- 其他属性映射 -->
</resultMap>
- SQL 查询语句:使用
<select>
标签定义查询语句。
<select id="getUserById" resultMap="UserResultMap">
SELECT * FROM user WHERE id = #{id}
</select>
- 动态 SQL:使用
<if>
、<choose>
、<when>
、<otherwise>
等标签实现动态 SQL 语句的拼接。
<select id="queryUser" resultMap="UserResultMap">
SELECT * FROM user
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
<!-- 其他条件 -->
</where>
</select>
- 插入、更新、删除操作:使用
<insert>
、<update>
、<delete>
标签定义相应的操作。
<insert id="insertUser" parameterType="com.example.model.User">
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
<update id="updateUser" parameterType="com.example.model.User">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<delete id="deleteUserById" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
- 参数传递:使用
#{}
表示预编译的参数占位符,可以传递参数给 SQL 语句。