xlvlog

 

Mapper 映射文件常用标签

1. <mapper>

  • 作用: 定义映射文件的根元素。包含所有的 SQL 语句和映射配置。
  • 属性:
    • namespace:用于指定当前映射文件对应的接口类的全限定名,起到命名空间的作用。
<mapper namespace="com.example.mapper.UserMapper">
    <!-- SQL 语句和映射关系 -->
</mapper>

2. <select>

  • 作用: 定义 SELECT 查询语句,用于从数据库中获取数据。
  • 常用属性:
    • id: SQL 语句的唯一标识符,通常与 Mapper 接口中的方法名对应。
    • resultType: 指定返回结果的类型,通常是一个 Java 类的全限定名或别名。
    • parameterType: 指定输入参数的类型。
<select id="selectUserById" parameterType="int" resultType="com.example.model.User">
    SELECT * FROM users WHERE id = #{id}
</select>

3. <insert>

  • 作用: 定义 INSERT 语句,用于向数据库插入数据。
  • 常用属性:
    • id: SQL 语句的唯一标识符。
    • parameterType: 指定输入参数的类型。
<insert id="insertUser" parameterType="com.example.model.User">
    INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>

4. <update>

  • 作用: 定义 UPDATE 语句,用于更新数据库中的数据。
  • 常用属性:
    • id: SQL 语句的唯一标识符。
    • parameterType: 指定输入参数的类型。
<update id="updateUser" parameterType="com.example.model.User">
    UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
</update>

5. <delete>

  • 作用: 定义 DELETE 语句,用于删除数据库中的数据。
  • 常用属性:
    • id: SQL 语句的唯一标识符。
    • parameterType: 指定输入参数的类型。
<delete id="deleteUserById" parameterType="int">
    DELETE FROM users WHERE id = #{id}
</delete>

6. <resultMap>

  • 作用: 复杂查询时,用于将数据库字段映射到 Java 对象的属性。它提供比 resultType 更灵活和详细的字段映射。
  • 常用属性:
    • id:  resultMap 的唯一标识符。
    • type: 指定结果集要映射的 Java 对象类型。
<resultMap id="userResultMap" type="com.example.model.User">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <result property="age" column="age" />
</resultMap>

<select id="selectUserById" parameterType="int" resultMap="userResultMap">
    SELECT * FROM users WHERE id = #{id}
</select>

7. <sql><include>

  • 作用: 定义可复用的 SQL 片段,减少代码重复。
  • 常用属性:
    • id:  SQL 片段的唯一标识符。
    • type: 指定结果集要映射的 Java 对象类型。
<sql id="userColumns">
    id, name, age
</sql>

<select id="selectUserById" parameterType="int" resultType="com.example.model.User">
    SELECT <include refid="userColumns"/> FROM users WHERE id = #{id}
</select>

8. <if>

  • 作用: 在 SQL 语句中动态添加条件,通常与参数一起使用。
  • 常用属性:
    • test:  表示条件表达式,只有条件为 true 时,才会在 SQL 中拼接该部分内容。
        SELECT * FROM user
        WHERE 1=1
        <if test="username != null and username != ''">
            AND username = #{username}
        </if>
        <if test="email != null and email != ''">
            AND email = #{email}
        </if>
        <if test="phone != null and phone != ''">
            AND phone = #{phone}
        </if>
    </select>

posted on 2024-10-14 22:21  抓一个破绽  阅读(16)  评论(0编辑  收藏  举报

导航