在@Mapper注解下来编写SQL语句

SpringBoot项目在mapper接口层使用了@Mapper注解后,就不需要在启动类中使用@MapperScan来扫描mapper接口层文件。

@Mapper
@Repository
public interface UserMapper {


	/**模糊查询**/
    @Select("SELECT a.id, a.username, a.password FROM User a WHERE a.username LIKE CONCAT('%',#{0},'%') ")
    public List<User> selectByName(String username);

	/**将查询到的字段进行映射到对应的java对象内**/
    @Select("select f.user_id user_id, f.type_id, f.friend_id, u.displayname username, u.gajgjgmc sign, u.tel phone, u.avatar from im_friend f left join sys_user u on f.friend_id=u.username where f.user_id= #{userId}")
    @Results(value = {
            @Result(column = "user_id", property = "userId"),
            @Result(column = "type_id", property = "typeId"),
            @Result(column = "friend_id", property = "friendId"),
            @Result(column = "username", property = "username"),
            @Result(column = "sign", property = "sign"),
            @Result(column = "phone", property = "phone"),
            @Result(column = "avatar", property = "avatar"),
    })
    List<UserFriend> findUserFriend(String userId);
    
	/**
     * 根据用户ID修改头像
     * @param userId 用户ID
     * @param imgUrl 修改的url
     */
    @Update("update sys_user set avatar = #{imgUrl} where username = #{userId}")
    void changeHeadPicture(@Param("userId")String userId,@Param("imgUrl")String imgUrl);
}
### @Mapper 注解的作用 在 MyBatis 中,`@Mapper` 注解用于标记一个接口为 MyBatis 的 Mapper 接口。一旦应用此注解,MyBatis 将能够自动为此接口生成实现类,并将其注册为 Spring 容器中的 Bean 进行管理[^1]。 这意味着开发者无需手动编写具体的 DAO 实现类,只需定义好接口方法签名即可完成数据访问操作的开发工作。这不仅简化了编码过程,还提高了代码可维护性和整洁度。 ### 使用场景与方式 当采用 `@Mapper` 注解的方式时,可以通过如下两种途径之一来配置: #### 方法一:单个接口上标注 对于每一个需要被识别为 MyBatis 映射器的接口,在其声明处加上 `@Mapper` 注解即可。这种方式适用于小型项目或仅需少量几个映射器的情况。 ```java import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Repository @Mapper public interface UserMapper { // SQL语句对应的方法体省略... } ``` #### 方法二:全局扫描包路径下所有符合条件的接口 如果希望整个应用程序内的所有自定义 Mapper 都能被自动发现并注入,则可以在启动类或者其他配置类中通过 `@MapperScan` 来指定要扫描的基础包名。这样做的好处是可以集中管理和控制哪些包下的接口会被视为 MyBatis 的 Mapper 接口。 ```java import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan(basePackages = "com.example.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 以上就是关于如何利用 `@Mapper` 注解快速搭建起基于 MyBatis 和 Spring Boot 技术栈的数据访问层的相关介绍[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值