Apache 德比 10.15.* - java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver
Apache Derby 10.15.* - java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
在尝试使用 Apache Derby DB(又名 JavaDB,曾经是 JDK 的一部分)作为嵌入式内存数据库进行测试时,我遇到了 ClassNotFoundException
由 HikariCP 抛出的错误能够实例化 org.apache.derby.jdbc.EmbeddedDriver
.
通过Maven建立的项目。
德比依赖是:
<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 中没有这样的 class。
在源代码中进行一些搜索后,我发现 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>
Note: of course, adjust the version of this artifact to be the same as the main one, whatever it is in your case.
致 Apache Derby 人员:如果此更改是完全有意的,我建议更改主要的 Derby 工件描述,它仍然误导性地指出“包含核心 Apache Derby 数据库引擎,其中还包括嵌入式 JDBC 驱动程序”(重点是我的 [YG])。
在尝试使用 Apache Derby DB(又名 JavaDB,曾经是 JDK 的一部分)作为嵌入式内存数据库进行测试时,我遇到了 ClassNotFoundException
由 HikariCP 抛出的错误能够实例化 org.apache.derby.jdbc.EmbeddedDriver
.
通过Maven建立的项目。 德比依赖是:
<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 中没有这样的 class。
在源代码中进行一些搜索后,我发现 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>
Note: of course, adjust the version of this artifact to be the same as the main one, whatever it is in your case.
致 Apache Derby 人员:如果此更改是完全有意的,我建议更改主要的 Derby 工件描述,它仍然误导性地指出“包含核心 Apache Derby 数据库引擎,其中还包括嵌入式 JDBC 驱动程序”(重点是我的 [YG])。