休眠自动创建数据库

2022-09-01 07:15:15

我有一个Java EE Hibernate项目,我正在使用MySQL作为数据库。

我希望当我第一次运行项目时,它将自动创建数据库。

这是我的:hibernate.cnf.xml

<?xml version='1.0' encoding='utf-8' ?>

<!DOCTYPE hibernate-configuration PUBLIC
      "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >

<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/InternetProject</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>
        <property name="connection.pool_size">10</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="show_sql">true</property>
        <mapping class="entities.Business" />
        <mapping class="entities.Coupon" />
        <mapping class="entities.User" />
        <mapping class="entities.LastLogin" />
    </session-factory>  
</hibernate-configuration>

当我第一次在另一台计算机上运行此项目时,如何创建数据库?InternetProject

根据配置文件,它可能已经这样做了,我不知道。

提前致谢。


答案 1

<property name="hibernate.hbm2ddl.auto">create</property>将创建表。但它不会创建数据库。更改连接 URL 以生成数据库。

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/InternetProject?createDatabaseIfNotExist=true</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="connection.pool_size">10</property>

更新:创建数据库时的字符编码

<property name="connection.url">
    jdbc:mysql://localhost/InternetProject?createDatabaseIfNotExist=true&useUnicode=yes&characterEncoding=UTF-8
</property>

答案 2
<property name="hibernate.hbm2ddl.auto">create</property>

会做的


推荐