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
を作成するにはどうすればよいですか?
構成ファイルによると、既にそれを行っている可能性があり、私はそれに気づいていません。
前もって感謝します。
<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>
<property name="hibernate.hbm2ddl.auto">create</property>
しましょう
自動プロパティには複数のオプションがあります。
validate-スキーマを検証またはマップまたは注釈と照合します。実稼働環境で有効です。
<!-- create create-drop validate update -->
<property name="hbm2ddl.auto">update</property>
役に立てば幸いです。
Hibernateはデータベースを作成せず、テーブルのみを作成します。データベースを作成するには、URLにパラメーターを追加して、データベースが存在しない場合は作成するようにMySQLに指示する必要があります。例えば。:
jdbc:mysql://db:3306/mydatabase?createDatabaseIfNotExist=true