【问题标题】:How do we connect MySql database in SpringBoot?我们如何在 Spring Boot 中连接 MySql 数据库?
【发布时间】:2019-08-10 17:35:48
【问题描述】:

我是 Spring Boot 的初学者,我想连接到 MySQL 数据库 (8.0.15),但是当我运行我的应用程序时,我遇到了以下异常,我无法理解它。我该如何解决这个问题?

java.sql.SQLException:连接属性“zeroDateTimeBehavior” 只接受以下形式的值:'exception'、'round' 或 '转换为空'。 'CONVERT_TO_NULL' 值不在此集合中。

application.properties

spring.datasource.url= jdbc:mysql://localhost:3306/sakila?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=root

【问题讨论】:

  • 只需检查您应该使用convertToNull 而不是CONVERT_TO_NULL 的错误消息。
  • 现在我得到 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 无法创建与数据库服务器的连接。
  • 你能从 Workbench 连接到 MySQL 吗?另外,也许尝试 ping 该主机以查看是否可以从您的计算机访问。
  • 是的,我连接到 mysql 工作台

标签: java mysql spring


【解决方案1】:

第 1 步 - 将数据库连接器的依赖项添加到 pom.xml MySQL 的示例如下所示。

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

如果您想连接到 oracle 数据库,您可以使用类似于下图所示的依赖项。

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.1</version>
</dependency>

第 2 步 - 从 pom.xml 中删除 H2 依赖项 或者至少将其范围设为测试

<!--
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>test</scope>
</dependency>
-->

第 3 步 - 设置您的 My SQL 数据库 我们需要使用模式和表来设置您的数据库。

For an example, check out - https://github.com/in28minutes/jpa-with-hibernate#installing-and-setting-up-mysql

第 4 步 - 配置与数据库的连接 配置 application.properties 以连接到您的数据库。

My SQL 的示例如下所示:

spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/todo_example
spring.datasource.username=todouser
spring.datasource.password=YOUR_PASSWORD

spring.jpa.hibernate.ddl-auto

Spring Boot 根据您是否连接到嵌入式数据库为此选择默认值。

Embedded Databases - default create-drop
Other Databases - default none

这里是所有选项的快速指南

none : No action will be performed.
create-only : Database creation will be generated from entities.
drop : Database dropping will be generated from entities.
create : Database dropping will be generated followed by database creation.
validate : Validate entites with the database schema
update: Update the database schema based on the entities

第 5 步 - 重新启动,您就准备好了! 就是这样

【讨论】:

    【解决方案2】:

    将您的连接字符串更改为 zeroDateTimeBehavior=convertToNull 而不是 zeroDateTimeBehavior=CONVERT_TO_NULL

    【讨论】:

    • 好的@TimBiegeleisen
    • 不,他可能的意思是我可以把它作为评论而不是回答,你没有做错任何事情
    • 现在我得到 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 无法创建与数据库服务器的连接。
    • 当 MySQL 服务未运行并且您尝试连接到 mysql 数据库或由于某种原因无法连接时,会出现此问题。确保 MySQL 服务正在运行并验证您的连接
    • MySQL 服务正在运行
    猜你喜欢
    • 2015-12-25
    • 1970-01-01
    • 2020-01-11
    • 2018-11-23
    • 1970-01-01
    • 2020-07-07
    • 2018-11-08
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多