MyBatis 提供了几种常用的注解,主要用于简化 XML 映射文件的编写,使得 SQL 查询和操作可以直接在 Java 接口中定义。下面列出了主要的注解以及它们在被调用时的写法示例:
1. @Select
@Select
注解用于执行查询操作,并将查询结果映射到指定的 Java 对象或基本数据类型。
@Select("SELECT * FROM users WHERE id = #{id}")
User getUserById(Long id);
2. @Insert
@Insert
注解用于执行插入操作,将 Java 对象的数据插入到数据库中。
@Insert("INSERT INTO users (id, username, password) VALUES (#{id}, #{username}, #{password})")
void insertUser(User user);
3. @Update
@Update
注解用于执行更新操作,更新数据库中已有的数据。
@Update("UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}")
void updateUser(User user);
4. @Delete
@Delete
注解用于执行删除操作,从数据库中删除指定的数据行。
@Delete("DELETE FROM users WHERE id = #{id}")
void deleteUserById(Long id);
5. @ResultMap
@ResultMap
注解用于引用 XML 映射文件中定义的 resultMap
,将查询结果映射到 Java 对象。
@Select("SELECT * FROM users")
@ResultMap("userResultMap")
List<User> getAllUsers();
6. @Results 和 @Result
@Results
和 @Result
注解结合使用,定义查询结果到 Java 对象的映射关系。
@Results({
@Result(property = "id", column = "user_id"),
@Result(property = "username", column = "user_name"),
@Result(property = "password", column = "user_password")
})
@Select("SELECT user_id, user_name, user_password FROM users WHERE id = #{id}")
User getUserById(Long id);
7. @Param
@Param
注解用于给 SQL 查询或操作方法的参数命名,以便在 SQL 语句中引用。
@Select("SELECT * FROM users WHERE username = #{username} AND password = #{password}")
User getUserByUsernameAndPass