Java Hibernate SQLGrammarException:无法准备语句

Java Hibernate SQLGrammarException:无法准备语句,java,mysql,hibernate,Java,Mysql,Hibernate,我有一个简单的项目,在数据库(MySQL)中有一个类和一个对应的表。如果将hbm2ddl.auto set create放在hibernate配置文件中,则可以正常工作。但是,如果我把它拿出来。代码引发以下异常: 错误:未找到表“学生”;SQL语句: 进入学生(fname、lname、入学)值(?,?)[42102-185] org.hibernate.exception.sqlgrammareexception:无法准备语句 我已经在数据库中创建了这个表,但我不知道为什么hibernate找不

我有一个简单的项目,在数据库(MySQL)中有一个类和一个对应的表。如果将hbm2ddl.auto set create放在hibernate配置文件中,则可以正常工作。但是,如果我把它拿出来。代码引发以下异常:

错误:未找到表“学生”;SQL语句:

进入学生(fname、lname、入学)值(?,?)[42102-185]

org.hibernate.exception.sqlgrammareexception:无法准备语句

我已经在数据库中创建了这个表,但我不知道为什么hibernate找不到这个表。我不确定与数据库的连接是如何工作的

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
    <property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect  </property>
    <property name="hibernate.CONNECTION.driver_class"> com.mysql.jdbc.Driver </property>
    
    <!-- Assume test is the database name -->
    <property name="hibernate.CONNECTION.url">
        jdbc:mysql://localhost:3306/sample;MVCC=TRUE;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;SCHEMA=sample
    </property>
    <property name="hibernate.connection.username"> root </property>
    <property name="hibernate.connection.password"> **** </property>

    <!-- Echo all executed SQL to stdout --> 
    <property name="show_sql">true</property>
    
    <!-- -->
    <property name="hbm2ddl.auto">create</property>
    
    
    <!-- List of XML mapping files -->
    <!-- -->
    <mapping resource="Student.hbm.xml" />
    <!-- <mapping class="ourPackage.Student" /> -->
</session-factory>

</hibernate-configuration>
学生休眠配置


使用autocreate,它会为您创建该表,但如果您不使用autocreate,则需要在数据库中手动创建该表。您是说您已经创建了该表。确保它位于正确的架构中,即
sample
,并且用户
root
可以访问它。请显示插入位置operation@Shahzeb. 我已经使用MySQL工作台在正确的模式“sample”下创建了表。我知道为我自动创建它,但是代码找不到我已经创建的表。有趣的是,如果我没有犯错误,当我使用“create”作为autocreate的值时,它不应该删除创建的表,但是,我看不到autocreate创建的表。我猜,我给代码提供了正确的表地址,但是,我不知道我遗漏了什么
@Entity
@Table(name="student") 
public class Student implements Serializable{
public Student(){
    
}

public Student(int id, String fName, String lName, String ent){
    this.id = id;
    this.fname = fName;
    this.lname = lName;
    this.entrance = ent;
}

public int getId() {
    return id;
}

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


public String getFname() {
    return fname;
}

public void setFname(String fname) {
    this.fname = fname;
}

public String getLname() {
    return lname;
}

public void setLname(String lname) {
    this.lname = lname;
}

public String getEntrance() {
    return entrance;
}

public void setEntrance(String entrance) {
    this.entrance = entrance;
}

@Id
@GeneratedValue
private int id;

private String fname;
private String lname;
private String entrance;
}
<hibernate-mapping>
<class name="ourPackage.Student" table="student">
  <meta attribute="class-description">
     This class contains the employee detail. 
  </meta>
  <id name="id" type="int" column="id">
    <generator class="native"/>
  </id>
  <property name="fname" column="fname" type="string"/>
  <property name="lname" column="lname" type="string"/>
  <property name="entrance" column="entrance" type="string"/>
 </class>
 </hibernate-mapping>
public class StudentDB {
private static SessionFactory factory;
private static ServiceRegistry serviceRegistry;

@SuppressWarnings("deprecation")
public static void main(String[] args) {

    try {
        // factory = new Configuration().configure().buildSessionFactory();
        createSessionFactory();
    } catch (Throwable ex) {
        System.err.println("Failed to create sessionFactory object." + ex);
        throw new ExceptionInInitializerError(ex);
    }
    
     StudentDB ME = new StudentDB();
     Integer empID1 = ME.addStudent("Alex", "Jason", "2005");

     ME.listStudent();
     factory.close();
}

public void listStudent() {
    Session session = factory.openSession();
    Transaction tx = null;
    try {
        tx = session.beginTransaction();
        Query temp = session.createQuery("from Student");
        List students = temp.list();
        for (Iterator iterator = students.iterator(); iterator.hasNext();) {
            Student student = (Student) iterator.next();
            System.out.print("First Name: " + student.getFname());
            System.out.print("  Last Name: " + student.getLname());
            System.out.println("  entrance: " + student.getEntrance());
        }
        tx.commit();
    } catch (HibernateException e) {
        if (tx != null)
            tx.rollback();
        e.printStackTrace();
    } finally {
        session.close();
    }
}

public static SessionFactory createSessionFactory() {
    Configuration configuration = new Configuration();
    configuration.configure();
    serviceRegistry = new ServiceRegistryBuilder().applySettings(
            configuration.getProperties()).buildServiceRegistry();
    factory = configuration.buildSessionFactory(serviceRegistry);
    return factory;
}
}