我被要求将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)
我真的不知道我在这里做什么;只是从网络上复制其他代码。有关下一步尝试的建议吗?
答案 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
一旦您有机会完成“德比入门”指南,我建议根据您在该经历中学到的内容提出一些后续问题。