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