我目前正在为我的应用程序开发登录和注册功能,并且我正在尝试连接到我的 MySQL 数据库。但是,我面临一个问题,即应用程序报告数据库为空,即使我已确认它包含虚拟数据。
详情:
数据库名称:nutzer 表名称:users(不是USERS) 我已按照必要的步骤设置数据库连接并使用 Hibernate 配置 JPA 设置。
错误信息: [Tabelle“USERS”nicht gefunden (diese Datenbank ist leer)]
我尝试过的:
问题:什么可能导致应用程序无法识别用户表中的现有数据?任何有关如何解决此问题的建议将不胜感激!
package de.likeherotozero;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
@Entity
@Table(name = "users", schema = "nutzer")
public class EmissionsData {
@Id
private Long id;
private String country;
private double value;
// Getters and Setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
}
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="my-persistence-unit">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>de.likeherotozero.User</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/nutzer"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="myCorrectPassword is here"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
需要注意的是,MySQL 不支持数据库模式划分。因此,在
schema
注释中使用 @Table(name = "users", schema = "nutzer")
参数是没有意义的。这可能是您遇到错误的原因。