Наличие проблемы с подключением Hibernate 3.0 с MySQL - PullRequest
0 голосов
/ 13 октября 2011

Я получаю эту ошибку. Я верю, что у меня есть спящий режим и все настройки 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'

Мой конфигурационный файл гибернации

    <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 ]

2 голосов
/ 13 октября 2011

Я получаю эту ошибку.

Это означает, что вы сделали что-то не так.

Я верю, что все мои спящие соединения и MVC все настроены правильно.

См. Мой предыдущий комментарий - вы не все сделали правильно.

Я слышал, что у драйверов MySQL есть проблема с подключением к базе данных.

Нет, драйверы MySQL работают нормально, если вы их правильно настроили.Вы делаете что-то не так, и вы добьетесь прогресса быстрее, если будете придерживаться такого подхода.

Прежде чем запускать Java, запустите клиент MySQL, войдите в MySQL.Если вы не можете, Java тоже не сможет.Посмотрите, работает ли демон.

Проверьте, доступна ли эта база данных.Если нет, создайте его.

Если он создан, убедитесь, что у вас есть нужные вам таблицы, а пользователь, в который вы входите, имеет соответствующие разрешения.

2 голосов
/ 13 октября 2011

Вы можете создать базу данных с именем "testDB" в вашем экземпляре MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...