1.在pom.xml文件里添加Mybatis依赖和连接数据库的依赖
<dependencies>
<!-- Mybatis整合Spring Boot的依赖项 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<!-- MySQL的依赖项 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
由于Spring Boot存在自动配置,当添加了数据库编程相关的依赖项后,无论是启动项目,还是执行任何Spring Boot测试,都会尝试读取连接数据库的配置信息,如果还没有添加相关配置,会导致启动失败/测试失败,例如:
2.0 关于Spring Boot的配置文件
在application.properties中
添加连接数据库的配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mall_pms?characterEncoding=utf-8&useUnicode=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
2.1 关于YAML配置
YAML是一种编写配置文件的语法,表现为以.yml
作为扩展名的文件。
相比.properties
文件,其语法的改变有:
- 原属性名中有小数点的部分,改为使用冒号+换行后空2格
- 原属性名与属性值使用等于号分隔,改为使用冒号+1个空格
- 如果多个配置中,属性名有相同的部分,则不必配置相同的部分,保持对应的空格(缩进)即可:
spring: datasource: url: jdbc:mysql://localhost:3306/mall_pms?characterEncoding=utf-8&useUnicode=true&serverTimezone=Asia/Shanghai username: root password: root
主配置YAML文件中配置
# Spring相关配置 spring: # Profile配置 profiles: # 激活哪些Profile配置 active: dev # Mybatis相关配置 mybatis: # 配置SQL语句的XML文件所在的位置 mapper-locations: classpath:mapper/*.xml
-
在开发阶段的dev里
-
# 服务器配置 server: # 服务端口 port: 10009 # Spring相关配置 spring: # 数据源相关配置 datasource: # 连接数据库的URL url: jdbc:mysql://localhost:3306/you?characterEncoding=utf-8&useUnicode=true&serverTimezone=Asia/Shanghai # 登录数据库的用户名 username: root # 登录数据库的密码 password: root driver-class-name: com.mysql.cj.jdbc.Driver
-
**注意:**YAML语法要求是严格的,必须按照以上语法规则,例如每次换行后需要添加2个空格,不可以使用TAB制表位取代,属性名与属性值之间,冒号的右侧必须有1个空格。在Spring框架中,并不直接识别YAML语法的配置,在Spring Boot项目中,基础依赖项(
spring-boot-starter
)中已经包含解析YAML配置的工具包(snakeyaml
),可以直接识别并解析YAML语法的配置文件。 -
在Spring Boot项目中,对
.yml
文件的支持,与对.properties
文件的是完全相同的,即:你可以将所有.properties
文件改成.yml
文件,再调整配置文件内部的语法即可。
3.检测连接数据库的配置是否正确
在项目中原本已经存在的测试类CsmallProductApplicationTests
类中,添加以下代码,并执行测试:
@Autowired
DataSource dataSource; // 注意:导java.sql包中的接口
@Test
void getConnection() throws Throwable {
dataSource.getConnection(); // 调用getConnection()时会连接数据库,则可以判断配置的连接信息是否正确
}
配置出错的报错信息:
1.当配置的spring.datasource.url
的值的格式有误时,会出现错误:
Caused by: java.lang.IllegalArgumentException: URL must start with 'jdbc'
2.当配置的spring.datasource.url
中的主机名部分有误时,会出现错误:
Caused by: java.net.UnknownHostException: localhast
3.当配置的spring.datasource.url
中的端口号部分有误时,会出现错误:
Caused by: java.net.ConnectException: Connection refused: connect
4.当配置的spring.datasource.url
中的serverTimezone
参数值有误时,会出现错误:
Caused by: java.time.zone.ZoneRulesException: Unknown time-zone ID: Asia/ShangHai
5.当配置的spring.datasource.username
的值有误时,会出现错误:
java.sql.SQLException: Access denied for user 'root123'@'localhost' (using password: YES)
6.当配置的spring.datasource.password和username
的值有误时,会出现错误:
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)