目的:
整合jdbc,成功访问mysql数据库。
idea版本:2020.2
springboot:2.3.2
mysql:8.0后
jdk:1.8
一、新建springboot项目
1.新建项目时勾选的资源有:web、jdbc(自动配数据源)、mysql(数据驱动)
2.查看pom.xml中导入的依赖并加载依赖
(以下我的项目创建后导入的所有依赖)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
二、启动数据库
三、与数据库交互的相关配置
在全局配置文件中配置以下内容(以下是springboot2.3.2,.yml文件的配置方式)
spring:
datasource:
username: root
password: '123456'
url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
注意点:
1、根据yml语法,password需要加单引号;
2、springboot2.0后,url需设置时区“?serverTimezone=UTC”
3、驱动名为:com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC
jdbc:连接方式
mysql:数据库类型
localhost:本地ip
3306:数据库端口号
jdbc:数据库名
?serverTimezone=UTC:时区
四、连接测试
在ApplicationTests类中:
@RunWith(SpringRunner.class)
@SpringBootTest
class Demo3ApplicationTests {
@Autowired
DataSource dataSource;//注入数据源
@Test
public void contextLoads() throws SQLException {
System.out.println(dataSource.getClass());//查看容器中注入的数据源类型
Connection connection = dataSource.getConnection();//从数据源中获取连接
System.out.println(connection);
connection.close();
}
}
在控制台查看数据源类型,以及是否获取到了连接。springboot2.0后,底层默认使用的是hikari连接池,而不是tomcat了,所以这里打印的数据源以及获取的连接为:
数据源:class com.zaxxer.hikari.HikariDataSource
获取的连接:HikariProxyConnection@850429804 wrapping com.mysql.cj.jdbc.ConnectionImpl@2aaf152b
备注:数据源的相关配置都在DataSourceProperties类里面,可查看源码,了解自己使用版本的配置规则
如果反复尝试都访问不成功,建议重新建一个项目,完全按照这个流程再尝试一遍