📅  最后修改于: 2023-12-03 14:47:34.498000             🧑  作者: Mango
在使用Spring Boot框架中连接MySQL数据库时,有一些细节需要注意,本文将介绍这些细节及解决方案。
首先,需要在pom.xml
中引入MySQL依赖。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
其中${mysql.version}
为MySQL驱动版本号。
在src/main/resources
目录下的application.properties
文件中,需要进行以下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/DB_NAME?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
其中DB_NAME
为连接的数据库名称,需根据实际情况修改。useSSL
表示是否使用SSL连接,可根据需要进行修改。driver-class-name
为MySQL驱动类。
MySQL的时区问题可能会导致数据库读取出来的时间比实际时间早8小时,为了避免这种问题,需要在application.properties
中添加以下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/DB_NAME?useSSL=false&serverTimezone=UTC
其中serverTimezone
为时区,设置为UTC
可以统一时区,避免时区问题。
Spring Boot默认使用的是tomcat-jdbc连接池,可以通过以下方式引入其他连接池:
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${hikari.version}</version>
</dependency>
其中${hikari.version}
为HikariCP版本号。配置如下:
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.maximumPoolSize=10
spring.datasource.hikari.minimumIdle=5
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
其中${druid.version}
为Druid版本号。配置如下:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/DB_NAME?useSSL=false&serverTimezone=UTC
spring.datasource.druid.username=root
spring.datasource.druid.password=root
spring.datasource.druid.initialSize=5
spring.datasource.druid.minIdle=5
spring.datasource.druid.maxActive=20
spring.datasource.druid.maxWait=60000
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.filters=stat,wall
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions=/druid/*
为了方便管理和维护,可以将application.properties
的配置外部化,具体方法可参考文档:Externalized Configuration。
本文介绍了在Spring Boot中连接MySQL需要注意的细节及解决方案,包括MySQL的时区问题、使用连接池等,希望能对开发者们有所帮助。