java - hibernate在maven项目中找不到mysql类

标签 java hibernate annotations

我在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

这不是类名,但应该是类名。

检查您的配置属性...

关于java - hibernate在maven项目中找不到mysql类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817557/

相关文章:

javascript - JSDoc:在 "for...of"循环中为变量声明@type

java - TreeSet 不添加超过两个项目(对象)

Java 线程未异步运行 - 有些根本未完成

java - Hibernate Criteria,分组/选择父级的不同子级

java - 使用 GSON 和 Hibernate Entity 创建自定义 JSON

annotations - 休眠 5 : how to ignore naming strategy for @Column?

java - 为什么 Java 不接受泛型隐含的返回类型?

java - Spring JPA @IdClass CompositeKey 最低要求

java - Hibernate 保存返回错误的生成 ID

spring - 为什么 BeanDefinition.getPropertyValues 返回一个空列表