📜  springboot中mysql连接细节-Java(1)

📅  最后修改于: 2023-12-03 14:47:34.498000             🧑  作者: Mango

Spring Boot中MySQL连接细节

在使用Spring Boot框架中连接MySQL数据库时,有一些细节需要注意,本文将介绍这些细节及解决方案。

1. 引入MySQL依赖

首先,需要在pom.xml中引入MySQL依赖。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${mysql.version}</version>
</dependency>

其中${mysql.version}为MySQL驱动版本号。

2. application.properties配置

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驱动类。

3. 避免时区问题

MySQL的时区问题可能会导致数据库读取出来的时间比实际时间早8小时,为了避免这种问题,需要在application.properties中添加以下配置:

spring.datasource.url=jdbc:mysql://localhost:3306/DB_NAME?useSSL=false&serverTimezone=UTC

其中serverTimezone为时区,设置为UTC可以统一时区,避免时区问题。

4. 使用连接池

Spring Boot默认使用的是tomcat-jdbc连接池,可以通过以下方式引入其他连接池:

HikariCP
<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
Druid
<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/*
5. 外部化配置

为了方便管理和维护,可以将application.properties的配置外部化,具体方法可参考文档:Externalized Configuration

总结

本文介绍了在Spring Boot中连接MySQL需要注意的细节及解决方案,包括MySQL的时区问题、使用连接池等,希望能对开发者们有所帮助。