我正在使用spring,hibernate和mysql创建一个应用程序。 我正在设置 hibernate.hbm2ddl.auto = update ,我想这会强制mysql创建一个数据库/表(如果不存在)。但仍然出于某些原因,hibernate不会创建数据库并抛出异常。请帮忙 我已经使用过各种各样的方言,请看下面但都是徒劳的。
hibernate.properties文件
$.ajax(settings).done(function (response) {
for (i = 0; i < response.attendees.length; i++){
console.log(i);
$('tbody').append('<tr><td>'+ response.attendees["name"] + '</td><td>'+ response.attendees["prename"] + '</td><td>' + response.attendees["datum"] + '</td></tr>');
console.log(response.attendees["name"]);
}
});
applicationContext.xml 文件
var link_trailer = JSON.parse(data).trailers[0].youtube[0].source
控制台
#JDBC Properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/emusicstoredb
jdbc.username=root
jdbc.password=Mysql@123
#Hibernate Properties
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=update
hibernate.format_sql=true
的pom.xml
<context:property-placeholder location="/WEB-INF/hibernate.properties" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.emusicstore</value>
</list>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1024000" />
</bean>
</beans>
请注意: 我已经使用了以下方言:
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQLInnoDBDialect
org.hibernate.dialect.MySQLDialect
我还创建了一个数据库,但随后又引发了表而不是数据库的异常。
已经做了maven更新,清理项目,删除.m2文件夹并浪费了4个小时但都徒劳无功。 请帮忙。
答案 0 :(得分:2)
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'emusicstoredb'
此异常是因为找不到应用程序数据库名称 - &gt; emusicstoredb
hibernate的hbm2ddl.auto
属性可以创建,更新或验证数据库表。这不是创建数据库的责任,您应首先创建数据库名称emusicstoredb
,然后运行您的应用程序。