Hibernate не найден MySQL класс в проекте Maven - PullRequest
0 голосов
/ 11 января 2012

Я создал проект maven в eclipse Helios и добавил «hibernate-search 4.0.0.Final» и «mysql-connector-java 5.1.18» в зависимости pom.xml. Оба загружены и существуют в каталоге .m2. но когда я запускаю этот код:

Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.getTransaction().commit();

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

Exception in thread "main" java.lang.ExceptionInInitializerError
    at net.leemoo.test.HibernateUtil.buildSessionFactory(HibernateUtil.java:19)
    at net.leemoo.test.HibernateUtil.<clinit>(HibernateUtil.java:8)
    at net.leemoo.test.MainClass.main(MainClass.java:9)
Caused by: org.hibernate.HibernateException: Dialect class not found: jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:76)
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:64)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:166)
    at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2270)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2266)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1735)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1775)
    at net.leemoo.test.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
    ... 2 more
Caused by: org.hibernate.service.classloading.spi.ClassLoadingException: Unable to load class [jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8]
    at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:141)
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:73)
    ... 13 more
Caused by: java.lang.ClassNotFoundException: Could not load requested class : jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8
    at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138)
    ... 14 more

Я не знаю, что делать? Я погуглил эту ошибку, но безуспешно. Пожалуйста, помогите мне. заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Похоже, что-то (или кто-то) поместил URL JDBC в свойство, которое должно содержать имя класса.

Caused by: java.lang.ClassNotFoundException: 
    Could not load requested class : 
    jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8

Это не имя класса, и оно должно быть.

Проверьте настройки вашей конфигурации ...

2 голосов
/ 11 января 2012

В вашем конфигурационном файле Hibernate вы указали URL вашей базы данных, где Hibernate ищет диалект вашей базы данных:

Dialect class not found: jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8

Диалект должен быть классом (org.hibernate.dialect.MySQL5Dialect, например).

См. http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#tutorial-firstapp-configuration

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