首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Derby 10.15..*- java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver

Apache Derby 10.15..*- java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
EN

Stack Overflow用户
提问于 2021-03-31 04:46:09
回答 1查看 135关注 0票数 0

在尝试使用Apache Derby DB (也称为JavaDB,曾经是JDK的一部分)作为嵌入式内存中DB进行测试时,我遇到了HikariCP抛出的ClassNotFoundException,因为它不能实例化org.apache.derby.jdbc.EmbeddedDriver

这个项目是通过Maven建立的。Derby依赖关系是:

代码语言:javascript
复制
<dependency>
    <artifactId>derby</artifactId>
    <groupId>org.apache.derby</groupId>
    <version>10.15.2.0</version>
    <scope>test</scope>
</dependency>

HikariCP配置为:

代码语言:javascript
复制
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访问。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-31 04:46:09

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

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

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

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbytools</artifactId>
    <version>10.15.2.0</version>
    <scope>test</scope>
</dependency>

注意:当然,请将此工件的版本调整为与主工件相同的版本,无论它在您的情况下是什么。

致Apache Derby人员:如果此更改完全出于意图,我建议更改主Derby工件描述,该描述仍然误导性地指出“包含核心Apache Derby数据库引擎,还包括嵌入式JDBC驱动程序”(重点是我的YG)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66878264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档