Apache Derby 10.15.* - java.lang.ClassNotFoundException: org



在尝试使用Apache Derby DB(又名JavaDB,曾经是JDK的一部分(作为嵌入式内存数据库进行测试时,我遇到了HikariCP抛出的ClassNotFoundException无法实例化org.apache.derby.jdbc.EmbeddedDriver

通过Maven建立的项目。Derby依赖项是:

<dependency>
<artifactId>derby</artifactId>
<groupId>org.apache.derby</groupId>
<version>10.15.2.0</version>
<scope>test</scope>
</dependency>

HikariCP配置为:

HikariConfig config = new HikariConfig();
config.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
config.setJdbcUrl("jdbc:derby:memory:TestsDB;create=true");
return new HikariDataSource(config);

很少有线程提到ClientDriver,但我确实需要EmbeddedDriver来进行内存JDBC访问。

有什么想法吗?

显然,从Derby版本10.14.*10.15.*,情况发生了变化。

后者(我正在使用(的JAR中确实没有这样的类。

在对源代码进行了一些搜索后,我发现org.apache.derby.jdbc.EmbeddedDriver已经移到了工具JAR中,所以请确保也将以下依赖项添加到pom.xml中:

<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<version>10.15.2.0</version>
<scope>test</scope>
</dependency>

注意:当然,调整这个工件的版本,使其与主工件的版本相同,无论您的情况如何。

致ApacheDerby的伙计们:如果这个更改是完全有意的,我建议更改主要的Derby工件描述,它仍然误导性地声明"包含核心ApacheDerby数据库引擎,该引擎还包括嵌入式JDBC驱动程序";(重点是我[YG](。

相关内容

最新更新