当前位置: 首页 > 知识库问答 >
问题:

Spring Boot无法在mysql 5.7中创建数据库表

高英彦
2023-03-14

我想用mysql服务器中的这些信息创建一个名为dni的表。

@Entity
public class Dni implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(nullable = false, updatable = false)
    private Long id;
    private String nombre;
    private String apellidos;
    private String direccion;
    private String fotoPerfil;
    private String codigoDni;
    private String fechaNacimiento;

    public Dni() {
    }

    public Dni(Long id, String nombre, String apellidos, String direccion, String fotoPerfil, String codigoDni, String fechaNacimiento) {
        this.id = id;
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.direccion = direccion;
        this.fotoPerfil = fotoPerfil;
        this.codigoDni = codigoDni;
        this.fechaNacimiento = fechaNacimiento;
    }

    public Long getId() {
        return id;
    }

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

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getFotoPerfil() {
        return fotoPerfil;
    }

    public void setFotoPerfil(String fotoPerfil) {
        this.fotoPerfil = fotoPerfil;
    }

    public String getCodigoDni() {
        return codigoDni;
    }

    public void setCodigoDni(String codigoDni) {
        this.codigoDni = codigoDni;
    }

    public String getFechaNacimiento() {
        return fechaNacimiento;
    }

    public void setFechaNacimiento(String fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

    @Override
    public String toString() {
        return "Dni{" +
                "id=" + id +
                ", nombre='" + nombre + '\'' +
                ", apellidos='" + apellidos + '\'' +
                ", direccion='" + direccion + '\'' +
                ", fotoPerfil='" + fotoPerfil + '\'' +
                ", codigoDni='" + codigoDni + '\'' +
                ", fechaNacimiento=" + fechaNacimiento +
                '}';
    }
}

失败的查询:

1.“创建表dni(id bigint not null,apellidos varchar(255),codigo_dni varchar(255),direccion varchar(255),fecha_nacimiento varchar(255),foto_perfil varchar(255),nombre varchar(255),主键(id))引擎=MyISAM”

2.“创建表hibernate_sequence(next_val bigint)engine=MyISAM”

我尝试的是:

--

--

--

这些都没用

共有1个答案

左丘智渊
2023-03-14

首先,当您只创建一个注释作为@Entity,并且对手动数据库或H2数据库有足够的依赖性时,Spring boot将创建一个与类名称同名的表。

解决方案:

添加H2数据库依赖项以获取hibernate_序列表。您将在pom中获得H2数据库依赖项。xml格式如下:

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

您可以为MYSQL添加依赖项,并使用application.properties文件手动连接数据库

波姆。xml

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

应用属性

spring.datasource.url=jdbc:mysql://localhost:3306/dnischema
spring.datasource.username=root
spring.datasource.password=root

# Hibernate properties
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
# create, create-drop
spring.jpa.hibernate.ddl-auto=update

如果你正在使用上述步骤,首先使用命令create Database dnischema在Mysql中创建一个数据库。

使用这个解决方案,你不需要创建一个单独的表格,spring boot会为你创建表格。

 类似资料:
  • 我正在从事一个大学项目,我打算使用oracle数据库作为后端,我选择使用django作为编程语言。我已成功地将django与oracle 12c连接,并已安装了cx_oracle。但是当我尝试运行命令时 出现以下错误。 Windows PowerShell版权所有(C)微软公司。版权所有。 PS C:\Users\Hp\Desktop\onlinepharma 上述异常是以下异常的直接原因: 回溯

  • 我无法在Spark数据库中创建H2OContext--使用PySparkling。它给出了以下错误。 代码:从pysparkling导入* 代码:导入H2O 代码:H2OConf=H2OConf(Sark) 代码:H2OConf.set(“spark.ui.enabled”,True) 代码:h2oContext=h2oContext.getorcreate(spark,h2oConf) 错误:j

  • 看来PostgreSQL不允许创建名为'user'的数据库表。但MySQL将允许创建这样的表。 那是因为它是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQL方言)。

  • 当应用程序启动时,我正在尝试创建mysql数据库。我尝试了波纹管配置,但无法实现,如果有人对此有想法,请告诉我,

  • 问题内容: PostgreSQL似乎不允许创建名为“ user”的数据库表。但是MySQL将允许创建这样的表。 那是因为这是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQLDialect)。 问题答案: 是保留字,通常不建议使用保留字作为标识符(表,列)。 如果您坚持要这样做,则必须将表名放在双引号中: 但是,在引用表时,您 总是 需要使用双引号。此外,表名

  • 问题内容: 我正在使用,并且正在尝试运行一个简单的应用程序,尤其是运行在page中描述的应用程序。我的hibernate.cfg.xml文件是: 我(使用maven时)是: 我在链接中使用它: 但是,不可能获得应用程序的工作,即在数据库中hibernate创建表并插入值。无论尝试如何,我总是会收到相同的错误: 在线上的“关系部门不存在”: 我也没有完全相同的错误尝试过。为了抢占某些读者,请不要在数