我在Eclipse Helios中创建了一个maven项目,并将“ 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


我不知道该怎么办?我用谷歌搜索了这个错误,但是没有成功。请帮助我。提前致谢。

最佳答案

看起来某物(或某人)已将JDBC URL放在一个假定包含类名的属性中。

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


那不是一个类名,应该是。

检查您的配置属性...

07-25 23:21