Java Hibernate说database.table不';不存在

Java Hibernate说database.table不';不存在,java,mysql,hibernate,Java,Mysql,Hibernate,形势 好的,我正在学习Hibernate(从2天开始,请原谅我的错误),我正在使用mysql数据库,并尝试创建一个表Employee,在数据库中创建一个条目(演示) 以下是代码 POJO: package com.sopra.pojo; import javax.persistence.*; @Entity @Table(name = "EMPLOYEE") public class Employee { @Id private int Id; private Strin

形势 好的,我正在学习Hibernate(从2天开始,请原谅我的错误),我正在使用mysql数据库,并尝试创建一个表
Employee
,在数据库中创建一个条目(演示)

以下是代码

POJO:

package com.sopra.pojo;
import javax.persistence.*;
@Entity
@Table(name = "EMPLOYEE")
public class Employee {
    @Id
    private int Id;
    private String firstName;
    private String lastName;
    private int salary;

    public int getId() {
        return Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

}
hibernate.cfg.xml位于
src

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">password</property>
        <property name="hibernate.connection.pool_size">1</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name = "hibernate.hbm2ddl.auto">create</property>

        <mapping class="com.sopra.pojo.Employee" />
    </session-factory>
</hibernate-configuration>
错误

原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表“test.employee”不存在

我试过了

  • 在cfg文件中使用此选项:
    update
  • 有趣的是,当我使用workbench在mysql中手动创建表时,hibernate会删除它,因为当我使用drop命令时,它会说表不存在
  • 我不知道故障可能在哪里(新手和互联网没有帮助)。 请在评论中提及所需的任何其他详细信息。 请帮忙!
    谢谢。

    添加不同的hibernate自动选项

    使用而不是
    create
    update
    create drop

    <property name="hibernate.hbm2ddl.auto">update</property>  
    
    更新
    

    createdrop
    
    你可以阅读更多关于它的内容


    我让它工作了,我不确定这是否是一个正确的答案,但因为它得到了工作,我张贴它作为一个答案。 我做了两个改动

  • 我使用的是hibernate
    version 5.2.12
    ,因此我将其更改为4.2.0,并从另外两个我以前没有使用的文件夹中添加了JAR(总之,我现在已从以下文件夹导入JAR:hibernate用户库中的可选、提供和必需文件夹)
  • 我忽略了一个url错误

    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    
    所以,我错了


    无论如何,我们非常感谢关于改进此答案以及为什么它能起作用的评论。

    可能的重复可能不是因为我尝试了该解决方案,但没有起作用@FrancisBartkowiakHow您是否生成了表格(即员工)在您的本地数据库中?请参阅新的editUse@Table注释,了解实体数据库中的表名是什么?检查是否有输入错误。数据库中没有表,我想通过hibernate创建它。
     <property name="hibernate.hbm2ddl.auto">create-drop</property>
    
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">`