我有一个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
?
根据配置文件,它可能已经完成了,我不知道它。
提前致谢。
答案 0 :(得分:37)
<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>
答案 1 :(得分:13)
<property name="hibernate.hbm2ddl.auto">create</property>
会做
答案 2 :(得分:6)
自动财产有多种选择。
validate - 它使用地图或注释验证或匹配模式。它对生产环境有效。
<!-- create create-drop validate update -->
<property name="hbm2ddl.auto">update</property>
我希望它有所帮助。
答案 3 :(得分:6)
Hibernate不会为您创建数据库,只为表创建数据库。要创建数据库,您需要通过向URL添加参数来告诉MySQL创建数据库是否已经存在。 E.g:
jdbc:mysql://db:3306/mydatabase?createDatabaseIfNotExist=true