能够连接(我相信)但不能创建实体表的Spring Boot MySQL程序.

POM.xml-

<?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>3.2.0-M2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>dev.devin</groupId>
    <artifactId>toDoApp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>toDoApp</name>
    <description>Backend application using mysql workbench bc xampp sucks</description>
    <properties>
        <java.version>17</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-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <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>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

Application.properties文件-

spring.datasource.url=jdbc:mysql://localhost:3306/db
spring.datasource.username=root
spring.datasource.password=0000
spring.datasource.driver.class-name=com.mysql.cj.jdbc.Driver


spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.defer-datasource-initialization=true


spring.datasource.initialization-mode=always

实体文件(我手动添加了getters/setters/构造函数以排除Lombok问题)-


package model;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Table(name = "TASKS")
@Data
public class Task {

    @Id
    @Column(name = "ID")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "TITLE")
    private String title;


    @Column(name = "BODY")
    private String body;

    public Task() {
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }
}

当我奔跑的时候-

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::             (v3.2.0-M2)

2023-09-08T23:31:59.514-04:00  INFO 17088 --- [           main] dev.devin.toDoApp.ToDoAppApplication     : Starting ToDoAppApplication using Java 17.0.8 with PID 17088 (C:\Users\devin\OneDrive\Desktop\toDoApp\toDoApp\target\classes started by devin in C:\Users\devin\OneDrive\Desktop\toDoApp)
2023-09-08T23:31:59.519-04:00  INFO 17088 --- [           main] dev.devin.toDoApp.ToDoAppApplication     : No active profile set, falling back to 1 default profile: "default"
2023-09-08T23:32:00.129-04:00  INFO 17088 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-09-08T23:32:00.157-04:00  INFO 17088 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 16 ms. Found 0 JPA repository interfaces.
2023-09-08T23:32:00.751-04:00  INFO 17088 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2023-09-08T23:32:00.757-04:00  INFO 17088 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-09-08T23:32:00.758-04:00  INFO 17088 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-09-08T23:32:00.849-04:00  INFO 17088 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-09-08T23:32:00.851-04:00  INFO 17088 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1277 ms
2023-09-08T23:32:00.998-04:00  INFO 17088 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2023-09-08T23:32:01.284-04:00  INFO 17088 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@5d7d8613
2023-09-08T23:32:01.285-04:00  INFO 17088 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2023-09-08T23:32:01.324-04:00  INFO 17088 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2023-09-08T23:32:01.369-04:00  INFO 17088 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.2.7.Final
2023-09-08T23:32:01.370-04:00  INFO 17088 --- [           main] org.hibernate.cfg.Environment            : HHH000406: Using bytecode reflection optimizer
2023-09-08T23:32:01.507-04:00  INFO 17088 --- [           main] o.h.b.i.BytecodeProviderInitiator        : HHH000021: Bytecode provider name : bytebuddy
2023-09-08T23:32:01.661-04:00  INFO 17088 --- [           main] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
2023-09-08T23:32:01.817-04:00  INFO 17088 --- [           main] o.h.b.i.BytecodeProviderInitiator        : HHH000021: Bytecode provider name : bytebuddy
2023-09-08T23:32:02.054-04:00  INFO 17088 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2023-09-08T23:32:02.061-04:00  INFO 17088 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2023-09-08T23:32:02.108-04:00  WARN 17088 --- [           main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2023-09-08T23:32:02.534-04:00  INFO 17088 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path ''
2023-09-08T23:32:02.540-04:00  INFO 17088 --- [           main] dev.devin.toDoApp.ToDoAppApplication     : Started ToDoAppApplication in 3.364 seconds (process running for 3.706)

我也在使用带有工作台的MySQL8.

这是我的第一篇堆栈溢出帖子,希望也是我最后一次大笑.

如果你需要任何信息,请告诉我,谢谢你抽出时间来.

我try 将spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect更改为所有不同版本的方言.请注意,由于不推荐使用,spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect告诉我将其更改回以前的版本.这就是我真正try 的全部,因为我非常确定这是一个Hibernate 问题,因为终端说它能够建立JDBC连接(尽管我甚至不太确定这是什么意思).

推荐答案

您的实体类是单个模型包.判断您的实体类必须位于使用@SpringBootApplication或@EnableAutoConfiguration注解的类的同一个包或子包中

Mysql相关问答推荐

MariaDB字段+1

MySQL有没有办法直接从CSV文件中读取而不是导入它?

从表中 Select 具有不同顺序的列

MySQL中的where语句会 destruct 全外连接.

MySQL 关于 JSON 数组和子查询的问题

分别针对每个不同的列 Select 聚合

如何将结果列中的不同值按其他列sql中的值带入单行

如何查询由另一个查询创建的表?

使用 DISTINCT 时无法从数据库中查询所有数据

MySQL 1292 截断不正确的日期时间值:'2020-09-11T08:32-50Z'

使用数据表的直方图(SQL 查询)

SUBSTRING_INDEX 获取第 n 个值

MySQL Workbench - 如何同步 EER 图

If else on WHERE 子句

如何查看打开了多少 MySQL 连接?

基于字符串动态创建 PHP 对象

Sequelize Query 查找日期范围内的所有记录

MySQL 导出到 outfile:CSV 转义字符

MySQL:ALTER IGNORE TABLE 给出违反完整性约束

从 MySQL JSON 数据类型中提取不带引号的值