java - 配置错误。未找到类 [com.mysql.cj.jdbc.Driver]。 EclipseLink、MySQL 驱动程序

标签 java mysql jdbc classnotfoundexception

我正在尝试使用 EclipseLink 学习 JPA。我使用 Mysql 作为我的数据库。我已经添加了所需的所有依赖项,下面是我的 pom.xml

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>2.7.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>javax.persistence</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>2.1.1</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.11</version>
        <scope>runtime</scope>
    </dependency>

</dependencies>

问题是,即使 maven 已下载 mysql jdbc 连接器所需的所有 jar,我也会收到异常描述:配置错误。未找到类 [com.mysql.cj.jdbc.Driver]。以下是我正在使用的版本: 1.Mysql JDBC连接器:8.0.11 2.Eclipse链接:2.7.1 3.JPA:2.2.0

附件是我的 Maven 依赖项 jar 的屏幕截图。

我尝试了 stackoverflow 上其他线程的所有建议,但无法解决问题。

提前感谢您的帮助和感谢!

下面是我的 persistence.xml

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
   http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

   <persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL">

      <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
      <exclude-unlisted-classes>false</exclude-unlisted-classes>

      <properties>
         <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
         <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpadb"/>
         <property name="javax.persistence.jdbc.user" value="root"/>
         <property name="javax.persistence.jdbc.password" value="root"/>
         <property name="eclipselink.logging.level" value="FINE"/>
         <property name="eclipselink.ddl-generation" value="create-tables"/>
      </properties>

   </persistence-unit>
</persistence>

此外,添加错误堆栈跟踪:

[EL Fine]: server: 2018-06-24 17:33:10.619--Thread(Thread[main,5,main])--配置的服务器平台:org.eclipse.persistence.platform.server.NoServerPlatform [EL信息]:2018-06-24 17:33:11.065--ServerSession(1101598632)--Thread(Thread[main,5,main])--EclipseLink,版本:Eclipse Persistence Services - 2.6.5.v20170607-b3d05bd [EL 严重]: ejb: 2018-06-24 17:33:11.068--ServerSession(1101598632)--Thread(Thread[main,5,main])--异常 [EclipseLink-4003] (Eclipse 持久性服务 - 2.6.5.v20170607-b3d05bd): org.eclipse.persistence.exceptions。数据库异常 异常描述:配置错误。未找到类 [com.mysql.cj.jdbc.Driver]。 线程“main”中的异常javax.persistence.PersistenceException:异常[EclipseLink-4003](Eclipse Persistence Services - 2.6.5.v20170607-b3d05bd):org.eclipse.persistence.exceptions.DatabaseException 异常描述:配置错误。未找到类 [com.mysql.cj.jdbc.Driver]。 在org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:818) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryDe​​legate.getAbstractSession(EntityManagerFactoryDe​​legate.java:207) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryDe​​legate.createEntityManagerImpl(EntityManagerFactoryDe​​legate.java:307) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:303) 在practice.JPA.persistence.App.main(App.java:17) 原因:异常 [EclipseLink-4003](Eclipse 持久性服务 - 2.6.5.v20170607-b3d05bd):org.eclipse.persistence.exceptions.DatabaseException 异常描述:配置错误。未找到类 [com.mysql.cj.jdbc.Driver]。 在 org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:89) 在 org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:267) 在 org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85) 在 org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162) 在 org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.setOrDetectDatasource(DatabaseSessionImpl.java:214) 在org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:776) 在org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:265) 在org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:734) ... 5 更多

最佳答案

我的项目使用 MySQL 和 JPA 的 EclipseLink 实现,并且工作正常。我的 pom 文件:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.19</version>
</dependency>
<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.jpa</artifactId>
    <version>2.7.6</version>
</dependency>

关于java - 配置错误。未找到类 [com.mysql.cj.jdbc.Driver]。 EclipseLink、MySQL 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013842/

相关文章:

java - Spring mvc-来自数据库的下拉框选项

java - ScrollPane不刷新其内容

java - 将 JLabel 类绘制到另一个 JPanel 类时出现问题

mysql - 尝试复制数据库时出现相同的 ID 错误

php - 如何根据星级过滤mysql数据库中的用户

PHP+PDO : Working MySQL Query with >10 rows always return 0 row (rowCount()==0)

java - 如何使 Java 和 Postgres 枚举协同工作以进行更新?

java - 如何使用这种方法关闭数据库连接?

java - 创建新的java进程,如子jvm

java - 使用 boolean 值搜索数组