Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Processing连接到Microsoft Access数据库_Java_Database_Ms Access_Processing - Fatal编程技术网

Java 使用Processing连接到Microsoft Access数据库

Java 使用Processing连接到Microsoft Access数据库,java,database,ms-access,processing,Java,Database,Ms Access,Processing,我正在尝试使用Processing(v3.4 windows64)连接到本地Microsoft Access数据库 根据前面的回答()我已经从这里下载了UCanAccess库()当前版本是4.0.4 它包括ucanaccess-4.0.4.jar和lib文件夹下的commons-lang-2.6.jar,commons-logging-1.1.3.jar,hsqldb.jar,jackcess-2.1.11.jar 下面是我正在运行的简单草图代码: import java.sql.*; voi

我正在尝试使用Processing(v3.4 windows64)连接到本地Microsoft Access数据库

根据前面的回答()我已经从这里下载了UCanAccess库()当前版本是4.0.4

它包括
ucanaccess-4.0.4.jar
lib
文件夹下的
commons-lang-2.6.jar
commons-logging-1.1.3.jar
hsqldb.jar
jackcess-2.1.11.jar

下面是我正在运行的简单草图代码:

import java.sql.*;

void setup() {
  size(640, 360);  // Size must be the first statement
  stroke(255);     // Set line drawing color to white
  frameRate(30);

  try{

    Connection conn=DriverManager.getConnection("jdbc:ucanaccess://D:/Dati/Profili/M030098/Documents/Database1_test.accdb");
    Statement s = conn.createStatement();
    ResultSet rs = s.executeQuery("SELECT * FROM tab_one");
    while (rs.next()) {
        System.out.println(rs.getString(1));
    }

  }catch(Exception e){
     e.printStackTrace();
  }
}
我不确定是否正确导入草图中的5个库。如果没有它们,catch块将返回以下消息:

java.sql.SQLException:找不到适合jdbc的驱动程序:ucanaccess://C:/。。。我的文件夹的路径/文件/数据库1_test.accdb

如果我将5个jar导入
Processing\libraries
文件夹中,然后添加行import
hsqldb.jar
导入hsqldb.*对于我的草图,结果是控制台错误:

未找到hsqldb的库
库必须安装在sketchbook文件夹中名为“Libraries”的文件夹中(请参见“首选项”窗口)

我发现的唯一有线方式是在库中创建一个与jar同名的专用文件夹,包括一个包含jar的库子文件夹。它们全部重命名,删除了任何数字和破折号字符(见图)。 这样,库名称在
sketch>import library
下可用,如果选中,则向草图添加多条新的包含线(48)

其中一个(
import org.apache.commons.lang.enum.*;
)导致错误:
标记“enum”上的语法错误,需要标识符。

我刚刚评论了这一行,考虑到
import org.apache.commons.lang.*取而代之

因此,引用第行时会出现新的错误

Statement s = conn.createStatement();
类型语句不明确

然后我查找了库冲突,并注释了
import org.hsqldb.*

现在,它似乎工作正常,我可以检索我的表信息,但方式非常混乱

是否有正确的方法仅导入5个库

更新

根据建议,也可以在草图窗口中拖放JARs文件,并在草图文件夹中自动创建一个
code
文件夹,包括拖放的文件

它包括所有的包,不需要更多的代码行,无论如何,这个过程有两个缺点:

  • 由于它在幕后在草图文件夹中创建了一个
    code
    文件夹,因此仅为一个草图导入包,而不是“全局”库文件夹,并且需要为每个草图复制包

  • 导入包后我注意到两个错误:一个是由于使用专用单词
    enum
    org.apache.commons.lang.enum.
    和与另一个库冲突的
    org.hsqldb.
    导致的。拖放技术不允许选择要排除的单个库来解决这些错误


  • 我所知道的将
    .jar
    文件导入处理草图的最简单方法是
    .jar
    文件拖到处理编辑器上。

    对您的5
    .jar
    文件执行此操作。如果您对它在幕后所做的事情感到好奇,请在拖动后查看草图目录


    无耻的自我提升:是关于在处理过程中使用库的教程。

    谢谢您的建议。快速回答,很有效。我相信这是导入jar包的最快方法。无论如何,它有两个缺点:1)包仅适用于当前草图,而不适用于全局。2) 它包括所有包的类,如果发生冲突错误,是否不可能排除其中的一些类。@Mave751如果您需要全局可用的类,那么您的问题已经包含了如何做到这一点。我不确定你所说的包含所有类是什么意思:两种方法在类方面的作用完全相同。您需要使用显式导入语句(而不是通配符导入语句)来避免冲突。