com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知数据库'xyz'。 hbm2ddl.auto =更新无法正常工作

时间:2017-04-14 12:05:11

标签: java mysql spring hibernate maven

我正在使用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个小时但都徒劳无功。 请帮忙。

1 个答案:

答案 0 :(得分:2)

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'emusicstoredb'

此异常是因为找不到应用程序数据库名称 - &gt; emusicstoredb hibernate的hbm2ddl.auto属性可以创建,更新或验证数据库表。这不是创建数据库的责任,您应首先创建数据库名称emusicstoredb,然后运行您的应用程序。

相关问题