【问题标题】:Can`t connect Spring Boot with MySQL无法将 Spring Boot 与 MySQL 连接
【发布时间】:2021-10-23 21:27:51
【问题描述】:

我创建了一个名为:books_management_system 的数据库,然后使用 spring book app 应该生成四列的表,但是我无法将 MySQL 与 Spring Boot App 连接,这里是 applicaton.properties 文件和 pom.xml,我认为 xml 文件是好的,但问题可能出在 app.properties 文件中,请帮助我

spring.datasource.url=jdbc:mysql://localhost:3306/books_management_system
spring.datasource.username=root
spring.datasource.password=ivana12345
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform = org.hibernate.dialect.MySQL5Dialect
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto = update
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.books</groupId>
    <artifactId>springboot-books-management-system</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-books-management-system</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>16</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</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-jdbc</artifactId>
</dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

【问题讨论】:

  • spring boot启动日志有错误吗?
  • 不,启动日志中没有错误
  • 您可以使用哪个 MySQL 服务器版本?

标签: java mysql spring spring-boot hibernate


【解决方案1】:

在您的新帖子中,您现在没有任何驱动程序类名称。我创建了一个运行良好的示例。-->

#database properties
spring.datasource.url=jdbc:mysql://localhost:3306/smartcontactmanager
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update

我用的是mysql 8.0.21版

【讨论】:

    【解决方案2】:

    使用这个

    spring.database.driverClassName= com.mysql.jdbc.Driver
    

    代替

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    

    还有add这个dependency

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

    代替

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

    【讨论】:

      【解决方案3】:

      我建议您首先说明您的 MySQL 依赖项的版本。这是因为驱动程序包名称根据版本而变化。 8.0.14之后包名变成com.mysql.cj.jdbc.Driver 在它下面是com.mysql.jdbc.Driver。所以在你的pom中你应该添加版本。因为版本可能不是来自父母。为了安全起见,请尝试将版本添加到所有依赖项。

      【讨论】:

        【解决方案4】:

        我试过了,但它仍然没有在 db 中生成表

        spring.datasource.url=jdbc:mysql://localhost:3306/books_management_system
        spring.datasource.username=ivana
        spring.datasource.password=ivana12345
        
        
        spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
        spring.jpa.hibernate.ddl-auto=update
        
        logging.level..org.hibernate.SQL=DEBUG
        logging.level..org.hibernate.type=TRACE
        

        【讨论】:

          猜你喜欢
          • 2019-12-03
          • 1970-01-01
          • 2021-06-06
          • 2015-06-06
          • 2017-07-08
          • 2017-08-02
          • 2020-07-12
          • 2018-09-07
          • 2020-08-18
          相关资源
          最近更新 更多