JdbcTemplate 使用实例记录

2020-10-14 0 By admin

JdbcTemplate是Spring MVC内置的对JDBC的一个封装。

一、配置数据库和初始化

以 MySQL 数据库为例,需要提前创建好数据库服务,并创建好数据库、数据表和插入测试数据。

1.1、创建数据表

create table all_stat (
id int unsigned auto_increment primary key,
create_date date,
pv long,
uv long,
avg_responsetime varchar(5)
);

1.2、插入测试数据

insert into all_stat(create_date,pv,uv,avg_responsetime) values("2020-10-10",10,2,'1s');

二、配置 POM 文件中的依赖

2.1、数据库驱动依赖

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

2.2、JdbcTemplate 的依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

SpringBoot 的starter机制会为我们配置好数据源。
在SpringBoot 中通常情况下一个starter依赖是由多个依赖组成的。比如spring-boot-starter-jdbc由spring-boot-starter(自动配置,自动扫描)、spring-jdbc(提供spring管理数据库的标准接口)和HikariCP(Spring默认的数据库连接池)组成。所以springboot的starter依赖可以通过最少量的属性实现自动配置。

三、编写配置文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://10.xxx.3:3306/elasticer
    username: root
    password: eKO436OnEY1dnoKy

3.1、关于数据库驱动版本的小知识

当connector版本是6.0以前的使用com.mysql.jdbc.Driver;6.0以后的使用com.mysql.cj.jdbc.Driver。

四、代码中实现

4.1、编写实体类

@Component
public class Stat implements Serializable {

    private Integer id;
    private Date createDate;
    private Integer pv;
    private Integer uv;
    private String avgResponsetime;
	//省略 setter、getter、toString
}

4.2、调用测试

@Log4j2
@RestController
@RequestMapping("/")
public class Test {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    private Logger logger = LoggerFactory.getLogger(Test.class);
    @GetMapping("/test")
    public String test(){
        logger.info("访问/test 接口");
        List<Stat> statList = jdbcTemplate.query("select * from all_stat",new BeanPropertyRowMapper<>(Stat.class));
        for (Stat stat : statList) {
            logger.info(stat.toString());
        }
        return "hello";
    }
}