连接问题Hibernate 3.0与MySQL

时间:2011-10-13 00:03:06

标签: mysql hibernate spring

我收到此错误。我有我的hibernate连接和MVC所有设置正确我相信。 我听说MySQL驱动程序存在数据库连接问题。

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/AdministrativeApplication] threw exception [Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection] with root cause
java.sql.SQLException: Unknown database 'testDB'

我的hibernate配置文件

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
     xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd
    ">
 <!-- Load Hibernate related configuration -->

<tx:annotation-driven transaction-manager="transactionManager" /> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/testDB" />
    <property name="username" value="myroot"/>
    <property name="password" value="*****"/>
    <!-- connection pooling details -->
    <property name="initialSize" value="1"/>
    <property name="maxActive" value="5"/>
    </bean>

    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

    <property name="dataSource" ref="dataSource"/>
    <property name="hibernateProperties">
    <!-- Declare a transaction manager-->
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop>
    </props>
    </property>
    <property name="annotatedClasses">
    <list>
    <!--   all the annotation entity classes -->
    </list>
    </property>
    </bean>
<!-- Declare a transaction manager-->
 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"
          p:sessionFactory-ref="sessionFactory" />    
    </beans>

请让我知道 我可以做到解决这个错误。

我进一步添加了一个新的java文件来测试

import java.sql.*;

   public class Connect
   {
       public static void main (String[] args)
       {
           Connection conn = null;

           try
           {
               String userName = "root";
               String password = "******";
               String url = "jdbc:mysql://localhost:3306/testDB";
               Class.forName ("com.mysql.jdbc.Driver").newInstance ();
               conn = DriverManager.getConnection (url, userName, password);
               System.out.println ("Database connection established");
           }
           catch (Exception e)
           {
               e.printStackTrace(System.out);
               System.err.println ("Cannot connect to database server");
           }
           finally
           {
               if (conn != null)
               {
                   try
                   {
                       conn.close ();
                       System.out.println ("Database connection terminated");
                   }
                   catch (Exception e) { /* ignore close errors */ }
               }
           }
       }
   }

我收到此错误。我也用这个命令启动了MySQL控制台。 “C:\ Program Files \ MySQL \ MySQL Server 5.5 \ bin \ mysqld.exe”

我收到此错误

java.sql.SQLException: Unknown database 'testdb'
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at Connect.main(Connect.java:15)
Cannot connect to database server

有些人可以帮忙解决这个问题。 我跑netstats没有运气。我没有看到MySQL正在监听的端口。

再次感谢。 Dhiren

2 个答案:

答案 0 :(得分:2)

您可以在MySQL实例中create a database命名为“testDB”。

答案 1 :(得分:2)

  

我收到此错误。

这意味着你做错了什么。

  

我有我的hibernate连接和MVC所有设置正确我相信。

请参阅我之前的评论 - 您没有正确完成所有操作。

  

我听说MySQL驱动程序存在数据库连接问题。

Nope - 如果正确设置它们,MySQL驱动程序可以正常工作。你做错了什么,如果你采取这种态度,你会更快地取得进步。

在运行Java之前,启动MySQL客户端,登录MySQL。如果你做不到,Java也无法做到。查看守护程序是否已启动并正在运行。

查看您是否拥有该数据库。如果没有,请创建它。

如果已创建,请确保您拥有所需的表格以及您登录的用户具有适当的权限。