springboot使用@mapper注解

项目结构:
springboot

首先

在启动类XxxxApplication类里面,添加使用@mapper注解的包进行扫描:
@MapperScan(“com.springbootcache.mapper”)
例如:(这里,我开启了缓存)

@MapperScan("com.springbootcache.mapper")
@SpringBootApplication
@EnableCaching
public class SpringbootCacheApplication {
	public static void main(String[] args) {
		SpringApplication.run(SpringbootCacheApplication.class, args);
	}

}

接着是mapper接口

这样就不用配置mapper.xml文件,使用@mapper注解,代码会简化很多。

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM tb_user WHERE id=#{id}")
    public User getUserById(Integer id);
}

等同于
注意,这里同样需要在启动类添加注解@MapperScan(“com.springbootcache.mapper”)

@Component
public interface UserDao {
    public User getUserById(Integer id);
}

在resources里面新建mapper文件夹存放mapper.xml映射文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.springbootcache.mapper.UserDao " >
	<select id="getUserById" resultType="com.springbootcache.domain.User">
		"SELECT * FROM tb_user WHERE id=#{id}
	</select>
</mapper>

还有在application.properties配置文件里面

#映射表
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.springbootcache.domain

下面是缺少的代码

domain包下(pojo):

@Data
public class User implements Serializable {
    private Integer id;
    private String name;
    private int age;
}

controller包下(负责与用户进行交互):

@RestController
public class UserController {
    @Autowired
    UserService userService;
    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable("id") Integer id){
        return userService.getUserById(id);
    }
}

config包下(这里配置了swagger接口文档):
有兴趣可以了解一下swagger2技术,很简单的,有以注解的方式。

package com.springbootcache.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //RequestHandlerSelectors,配置要扫描接口的方式
                //basePackage("com.springbootcache.controller"),配置要扫描的包
                //any(),扫描全部
                //none(),什么都不扫描
                //withMethodAnnotation(GetMapping.class),扫描方法上的注解,[GetMapping/RequestMapping/PostMapping]
                //withClassAnnotation(),扫描类上的注解
                .apis(RequestHandlerSelectors.basePackage("com.springbootcache.controller"))
                //paths(),过滤什么路径
               // .paths(PathSelectors.ant("/springbootcache/**"))
                .build();
    }

    private ApiInfo apiInfo() {
        //作者信息
        Contact contact=new Contact("lee","https://blog.csdn.net/weixin_43849543","xxxx@qq.com");
        return new ApiInfo(
                "lee的API文档",
                "相逢太短,不等茶凉。",
                "1.0",
                "https://blog.csdn.net/weixin_43849543",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }
}

  • 12
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: @Mapper注解用于标记一个接口,它表示这个接口将作为MyBatis的映射文件来使用,它对应一个XML文件,其中定义了将被映射到该接口的SQL语句。@Repository注解是用来标识DAO层的组件,它将被用于自动生成DAO实现类,以及实现持久化操作。 ### 回答2: 在Spring Boot中,@Mapper和@Repository是两个常见的注解,用于在框架中进行数据访问和持久化操作。 @Mapper是MyBatis框架中的注解,用于标识一个接口是MyBatis的映射器。通过@Mapper注解,我们可以告诉Spring Boot将这个接口注册为一个可以执行SQL语句的Mapper接口。在使用@Mapper注解时,我们无需编写接口的具体实现,MyBatis会根据接口的定义自动生成对应的实现类。这样,我们就可以通过调用Mapper接口的方法来执行数据库的增删改查等操作。 @Repository是Spring框架中的注解,用于标识一个类是持久化层(Repository层)的组件。在Spring Boot中,我们通常使用@Repository注解将DAO(数据访问对象)标识为持久化组件。使用@Repository注解后,Spring Boot会自动扫描并将其纳入IoC容器中,使得我们可以在其他组件中直接使用@Autowired注解来注入并使用该持久化对象。 总结起来,@Mapper注解用于MyBatis的接口类,告诉Spring Boot将接口注册为Mapper并生成对应的实现类,使得我们可以使用Mapper接口执行数据库操作。而@Repository注解用于Spring的持久化层组件类,标识该类为数据访问对象,可以在其他组件中直接进行注入和使用。这两个注解Spring Boot中起到了不同的作用,但都是用于简化数据库访问和持久化操作的配置和编码工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值