我被要求将 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,类型 1x1 java.lang.Class”和“classLoader,值 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)
我真的不知道我在这里做什么;只是从网络上复制其他人的代码。关于下一步尝试什么有什么建议吗?
最佳答案
由于您刚刚开始使用 Derby,我可以建议您花一两个小时完成 Derby 教程:http://db.apache.org/derby/docs/10.11/getstart/cgstutorialintro.html
另外,我可以建议您养成从 Apache 网站而不是其他 Internet 站点下载 Derby 的习惯吗?其他站点上的 Derby 副本可能没问题,但从 Apache 网站获取 Derby 似乎最可靠、最安全: http://db.apache.org/derby/derby_downloads.html
您在描述中所做的大部分内容对我来说似乎都不错;我怀疑你误入歧途的地方是你解压 derbyclient.jar 本身时。
虽然“*.jar”文件实际上是有效的 ZIP 存档,但您不需要解压缩这些打包的 jar 文件。相反,您应该将该 jar 保留为“derbyclient.jar”,然后设置 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
一旦您有机会阅读 Derby 入门指南,我建议您根据您在该经历中学到的知识提出一些后续问题。
关于java - 通过 JDBC 将 MATLAB 连接到 Apache Derby 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699592/