MyBatis注解开发常用注解
MyBatis中的注解开发提供了一些注解,用于在Java代码中直接编写SQL语句,简化了SQL映射文件的编写。以下是一些常用的MyBatis注解及其用法:
@Select:用于执行查询操作。
@Select("SELECT * FROM users") List<User> findAll();
@Insert:用于执行插入操作。
@Insert("INSERT INTO users (name, email) VALUES (#{name}, #{email})") void insert(User user);
@Update:用于执行更新操作。
@Update("UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}") void update(User user);
@Delete:用于执行删除操作。
@Delete("DELETE FROM users WHERE id = #{id}") void deleteById(Long id);
@Mapper:标记Mapper接口,告诉MyBatis将其作为Mapper来处理。
@Mapper public interface UserMapper { // Mapper方法 }
@Param:指定方法参数的名称,用于在SQL语句中引用参数。
@Select("SELECT * FROM users WHERE name = #{name}") User findByName(@Param("name") String name);
@Results 和 @Result:用于指定结果集的映射关系。
@Results({
@Result(property = "id", column = "user_id"),
@Result(property = "name", column = "user_name"),
@Result(property = "email", column = "user_email")
})
@Select("SELECT user_id, user_name, user_email FROM users") List<User> findAll();
@ResultMap:引用已定义的结果映射。
@ResultMap("userResultMap") @Select("SELECT * FROM users") List<User> findAll();
@Options:用于配置一些额外的选项,如返回自动生成的主键。
@Insert("INSERT INTO users (name, email) VALUES (#{name}, #{email})") @Options(useGeneratedKeys = true, keyProperty = "id") void insert(User user);
这些注解可以直接在Mapper接口的方法上使用,从而在Java代码中直接编写SQL语句,而不需要额外的XML映射文件。