SpringBoot 配置连接 MySQL 数据库

一:引入依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

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

二:编辑 yaml 文件

1
2
3
4
5
6
7
8
9
10
spring:
application:
name: Developer
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/aaa?serverTimezone=UTC&useUnicode=true&characterEcoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 8088

三:配置包扫描

SpringBoot 拥有默认的包扫描机制,启动类所在当前包及其包的子类都会默认被扫描;

有时会因为 Bean 和启动类不在一个文件夹下,导致扫描不到引起的注解失败问题。

如何修改包扫描的位置?

方法一:

在启动类 SpringBootApplication 注解中配置 scanBasePackages即可,如下:

1
2
3
4
5
6
7
@SpringBootApplication(scanBasePackages = {"cn.aiyingke.developer.mysql"})
public class DeveloperApplication {
public static void main(String[] args) {
SpringApplication.run(DeveloperApplication.class, args);
System.out.println("Program startup completed!");
}
}

也可以配置多个包路径;

1
@SpringBootApplication(scanBasePackages = {"cn.aiyingke.developer.mysql","cn.aiyingke.developer.mysql.ebean"})

方法二:

在启动类里面添加 @ComponentScan 注解配置 basePackages;

1
2
3
4
5
6
7
8
@SpringBootApplication
@ComponentScan("cn.aiyingke.developer.mysql")
public class DeveloperApplication {
public static void main(String[] args) {
SpringApplication.run(DeveloperApplication.class, args);
System.out.println("Program startup completed!");
}
}

四:测试类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* Author: Rupert Tears
* Date: Created in 22:11 2022/11/21
* Description: Thought is already is late, exactly is the earliest time.
*/
@RestController
@RequestMapping("/mysql")
public class JdbcController {
final
JdbcTemplate jdbcTemplate;

public JdbcController(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

@GetMapping("/mdtList")
public List<Map<String, Object>> mdtList() {
String sql = "select * from mdt";
return jdbcTemplate.queryForList(sql);
}
}