通过JDBC

时间:2015-09-21 15:55:57

标签: java apache matlab jdbc derby

我被要求将Apache Derby数据库连接到我们现有的MATLAB数据挖掘工具。我正在运行MATLAB R2014a(没有数据库工具箱)

经过一些研究和反复试验,这就是我的所作所为:

转到http://www.java2s.com/Code/Jar/d/Downloadderbyclientjar.htm并下载derbyclient.jar并将其保存,并将其解压缩到共享文件夹。

编辑了文本文件C:\ Users \ tyler.davis \ AppData \ Roaming \ MathWorks \ MATLAB \ R2014a \ javaclasspath.txt并添加了derbyclient.jar的完整路径,保存了它,重新启动了MATLAB。

在MATLAB命令行

javaclasspath

在静态路径列表的末尾显示“S:\ SHARED ... \ derbyclientjar \ derbyclient.jar \ derbyclient.jar”。到目前为止一切都很好。

接下来,尝试

driverClassName = 'org.apache.derby.jdbc.ClientDriver';
java.lang.Class.forName(driverClassName);

报告错误:

Java exception occurred:
java.lang.ClassNotFoundException: org/apache/derby/jdbc/ClientDriver

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

尝试了另一种选择:

classLoader = com.mathworks.jmi.ClassLoaderManager.getClassLoaderManager;
driverClass = classLoader.loadClass(driverClassName);

这似乎有效,创建了对象“driverClass,type 1x1 java.lang.Class”和“classLoader,value 1x1 com.mathworks.jmi.ClassLoaderManager”

然后我试了

DriverManager.registerDriver(driverClass.newInstance);

报告错误

Undefined variable "DriverManager" or class "DriverManager.registerDriver".

如果我尝试使用

创建示例数据库
cxnStr = 'jdbc:derby:sampleDB:create=true';
cxn = java.sql.DriverManager.getConnection(cxnStr);

我得到了

Java exception occurred:
java.sql.SQLException: No suitable driver found for jdbc:derby:sampleDB:create=true

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

我真的不知道我在这里做什么;只是从网络上复制其他代码。有关下一步尝试的建议吗?

1 个答案:

答案 0 :(得分:0)

由于您刚刚开始使用Derby,我是否可以建议您花一两个小时来浏览Derby教程:http://db.apache.org/derby/docs/10.11/getstart/cgstutorialintro.html

另外,我是否可以建议你养成从Apache网站而不是其他网站下载Derby的习惯?其他网站上的Derby副本可能很好,但从Apache网站获取Derby似乎最可靠和最安全:http://db.apache.org/derby/derby_downloads.html

你在描述中所做的大部分内容对我来说都没问题;我怀疑你误入歧途的地方是当你解压缩derbyclient.jar本身时。

虽然是' *。jar'文件实际上是一个有效的ZIP存档,您不应该解压缩那些打包的jar文件。相反,你应该将jar作为“derbyclient.jar”#39;然后将您的CLASSPATH设置为包含' derbyclient.jar'作为CLASSPATH列表中的一个条目。

最后,请注意JDBC连接URL

jdbc:derby:sampleDB:create=true

是Derby的嵌入式配置的正确JDBC连接URL,而不是Derby的客户端 - 服务器配置。

所以,即使你正确地将一份derbyclient.jar复制到你的CLASSPATH中,你仍然无法使用

jdbc:derby:sampleDB:create=true

相反,您必须使用客户端 - 服务器样式的JDBC连接URL,例如:

jdbc:derby://my.server.name:1527/sampleDB

(并了解如何操作Derby Network Server),或者您需要切换到使用嵌入式驱动程序(org.apache.derby.jdbc.EmbeddedDriver)。

有关此配置概念的详细信息,请参阅:http://db.apache.org/derby/docs/10.11/getstart/cgsquck70629.html

有关JDBC连接URL和两个JDBC驱动程序类的更多信息,请参阅:http://db.apache.org/derby/docs/10.11/getstart/cgsquck19524.html

一旦您有机会完成“德比入门”指南,我建议根据您在该经历中学到的内容提出一些后续问题。