个人技术分享

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映射文件。