使用Spring和Hibernate - 未知数据库

时间:2014-04-05 02:00:05

标签: database spring hibernate

我有一个应用程序,我正在使用Spring和Hibernate。我收到以下错误消息,即使有问题的数据库存在。

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'cpc"'

这是jcbulboard-servlet.xml的相关部分

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
        p:location="/WEB-INF/jdbc.properties"></bean>

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource"
        p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.databaseurl}"
        p:username="${jdbc.username}" p:password="${jdbc.password}">
    </bean>
</beans>

这是jdbc.properties,它位于正确的位置。

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.databaseurl=jdbc:mysql://localhost/cpc"
jdbc.username=root
jdbc.password=password

这是hibernate.cfg.xml的相关部分。

    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost/cpc</property>
<!-- There's more in this file, but this is all that's relevant -->
        </session-factory>
    </hibernate-configuration>

2 个答案:

答案 0 :(得分:1)

这不是Spring或Hibernate问题,而是驱动程序问题。您的配置是正确的,但请确保您的连接网址是正确的。我突然发现了两件事:

  1. 确保端口正确(您没有指定端口)
  2. 确保您实际创建了数据库cpc(CREATE DATABASE cpc)&#39;
  3. 确保您有权实际查看数据库(各种GRANT&lt; blah&gt; on cpc。* to&lt; user&gt;)

答案 1 :(得分:1)

jdbc.databaseurl中的尾随双引号可能是您的问题的原因。尝试删除它。

jdbc.databaseurl=jdbc:mysql://localhost/cpc

而不是

jdbc.databaseurl=jdbc:mysql://localhost/cpc"

希望这有帮助。