Spring 本教程不让hibernate手动创建表,为什么?

Spring 本教程不让hibernate手动创建表,为什么?,spring,hibernate,dao,Spring,Hibernate,Dao,我正在关注使用SessionFactory的Spring Hibernate集成。向下滚动到DbUtil.java,使用初始化方法创建表 到目前为止,我还不需要像hibernate那样自动创建表的方法。那么这个初始化器的目的是什么?有什么好处吗?这似乎是不必要的复杂性 DbUtil.java public void initialize(){ DataSource dataSource = getDataSource(); try { Connection con

我正在关注使用SessionFactory的Spring Hibernate集成。向下滚动到DbUtil.java,使用初始化方法创建表

到目前为止,我还不需要像hibernate那样自动创建表的方法。那么这个初始化器的目的是什么?有什么好处吗?这似乎是不必要的复杂性

DbUtil.java

public void initialize(){
    DataSource dataSource = getDataSource();
    try {
        Connection connection = dataSource.getConnection();
        Statement statement = connection.createStatement();
statement.executeUpdate("CREATE TABLE PERSON (ID INTEGER, NAME VARCHAR(50), EMAIL VARCHAR(100))");
        statement.close();
        connection.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }

我不确定,但它可能是为了显示在属性hibernate.hbm2ddl.auto未设置为创建的情况下是如何完成的。
通常,您不允许hibernate在生产环境中自动创建表(尽管有人这样做)。

您应该强调第二句话
hibernate.hbm2ddl.auto
在早期开发中非常好,但我无法想象不手动查看表(以及视图和索引)创建脚本。