在Spring Boot开发中,Mapper层(通常指数据访问层,尤其是使用MyBatis或MyBatis-Plus框架时)负责与数据库交互。以下是Mapper层常用的注解及详细示例:
1. @Mapper
- 用途:标记接口为MyBatis的Mapper接口,Spring Boot会自动将其纳入管理并生成实现类。
- 特点:
- 替代传统的XML配置,直接通过注解编写SQL。
- 需配合
@MapperScan在启动类中扫描接口路径。
- 示例:
@Mapper public interface UserMapper { // 方法定义(结合其他注解如@Select) }
2. @Select / @Insert / @Update / @Delete
- 用途:直接在接口方法上编写SQL语句,实现CRUD操作。
- 支持:
@Select:查询操作。@Insert:插入操作。@Update:更新操作。@Delete:删除操作。
- 示例:
@Mapper public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User getUserById(@Param("id") Long id); @Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})") int insertUser(@Param("name") String name, @Param("email") String email); @Update("UPDATE users SET name = #{name} WHERE id = #{id}") int updateUserName(@Param("id") Long id, @Param("name") String name); @Delete("DELETE FROM users WHERE id = #{id}") int deleteUserById(@Param("id") Long id); }
3. @Result / @Results
- 用途:定义SQL查询结果与Java对象的映射关系(尤其当字段名与列名不一致时)。
- 属性:
id:是否为主键。column:数据库列名。property:Java对象属性名。
- 示例:
@Mapper public interface UserMapper { @Select("SELECT id, user_name AS username, email FROM users WHERE id = #{id}") @Results(id = "userResultMap", value = { @Result(column = "id", property = "id", id = true), @Result

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



