MyBatis 的 Mapper 编写方式主要有三种:

1. XML 文件配置:

在 XML 映射文件中配置 SQL 语句和映射关系。这是最传统的方式,将 SQL 语句和映射关系分别写在 XML 文件中。

示例:

<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getUserById" resultType="User">
        SELECT * FROM users WHERE id = #{id}
    </select>
    <!-- 其他 SQL 语句 -->
</mapper>

2. 注解方式:

使用注解在 Java 接口方法上直接编写 SQL 查询语句和映射关系。这种方式比较简洁,SQL 和 Java 方法在同一个接口文件中。

示例:

// UserMapper.java
public interface UserMapper {
    @Select("SELECT * FROM users WHERE id = #{id}")
    User getUserById(@Param("id") Long id);
    // 其他注解方式定义的 SQL 方法
}

3. XML 文件 + 注解方式:

结合 XML 映射文件和注解,使用 XML 定义部分 SQL,然后在 Java 接口中使用注解定义其他 SQL 和映射关系。这种方式灵活性较高,可以根据需要选择使用 XML 或注解方式。

示例:

<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getUserById" resultType="User">
        SELECT * FROM users WHERE id = #{id}
    </select>
    <!-- 其他 SQL 语句 -->
</mapper>
// UserMapper.java
public interface UserMapper {
    // 注解方式定义的 SQL 方法
    @Select("SELECT * FROM users WHERE name = #{name}")
    List<User> getUsersByName(@Param("name") String name);
    // 其他方法
}

选择何种方式编写 Mapper 取决于团队和个人偏好,以及项目的需求和复杂度。XML 方式可以更清晰地分离 SQL 和 Java 代码,注解方式更为简洁,而混合方式则提供了更大的灵活性。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.