derby 10.15.2.0的java JDBC驱动程序?
我需要在Java中使用JDBC做一些简单的实验,我认为运行derby数据库应该是实现这一点的简单途径
我已经安装了derby,并使用“ij”工具创建了一个表并将一些数据放入其中。我也可以用ij读回数据
然而,当我试图用实际的Java代码连接到这个程序时,事情就糟了。在这种情况下,我尝试了几种方法,但每种方法都有不同的失败,所以我希望大家都能原谅这种模糊的做法。但这些是我迄今为止尝试/失败的关键点
- 这是一个maven项目,对artifactId“derbyclient”版本10.15.2.0有一个依赖关系
- ij工具使用url jdbc:derby:firstdb成功地连接到我的数据库(该数据库位于本地主机上,但未“嵌入”)
- 我找到的文档(终于!)这在某种程度上谈到了非嵌入式模式,即驱动程序应该是org。阿帕奇。德比。jdbc。ClientDriver,但找不到该类。我在gihub中找到了liquibase项目的注释,上面说现在是org。阿帕奇。德比。客户ClientAutoloadedDriver。使用该类名,不会抛出类not found错误,这似乎是向前迈出的一步李>
- 虽然加载了上述驱动程序,但上面显示的JDBCURL失败,并显示“没有适合jdbc的驱动程序:derby:firstdb”
- 我发现了其他提示,建议url的格式应为jdbc:derby://localhost/firstdb但是,这表示“连接被拒绝,因为找不到数据库firstdb”。我尝试了几种命名db的变体,但它们再次导致“没有合适的驱动程序”李>
- 在评论中g00se的提示下,我去寻找上面提到的没有找到的ClientDriver。我在derbytools文件的主derby发行版中发现了这一点。jar,但不在maven加载的任何jar中。我尝试使用一个手工构建的命令行来执行它,以便将derbytools放在类路径上。这允许将其作为驱动程序加载,但它连接到JVM中的数据库(这是可行的,我可以用它做一些事情)。但是,它没有连接到正在运行的网络服务器,这正是我想要实现的。当我试图通过使用jdbc格式的URL来强制它:derby://localhost:1527/firstdb,它再次告诉我找不到数据库时失败李>
- 我还发现似乎没有必要做“Class.forName”之类的事情,也不必担心类路径上有ClientDriver。当我使用DriverManager时,驱动程序已加载并可用。获取连接。然而,使用我尝试过的URL,我完全无法让它连接到网络服务器,它总是连接到JVM中的服务器(它可以工作,但不是我想要连接的地方)李>
有人能告诉我如何让它工作吗
# 1 楼答案
(代表问题作者发布,将解决方案移至答案空间)
我现在明白了这一点,这有效地解决了我的问题:
祈祷有人能抽出时间更新Derby文档,尤其是《入门指南》,让这些关键概念从一开始就更加清晰