java - 使用 UCanAccess 和 Apache Commons Net 从远程服务器中的数据库读取

标签 java database networking ucanaccess

我有一个java应用程序需要从数据库中读取数据。 我只需使用 UCanAccess 驱动程序读取 .accdb 文件 (Microsoft Access) 即可完成此操作。

public boolean connect()
{
    System.out.println("\n\nconnecting to database......\n\n");
    try { //connect to the database
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            con = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/C92/Desktop/Database1.accdb");
            st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            return true;
        }
        catch(Exception e)
        {
            System.out.println(e);
            return false;
        }
}

我还有一个客户端程序,它使用 Apache Commons Net 连接到服务器(由 FileZilla 运行),将文件从服务器传输到客户端。

ftpClient = new FTPClient();
    ftpClient.connect(serverName, 21);
    ftpClient.login(user, pass);
    ftpClient.enterLocalPassiveMode();
    ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

当我想从该数据库读取数据时,问题就开始了,但这次是在我连接的服务器上。我不知道如何结合这两种实现(Apache Commons Net 和 UCanAccess)来读取服务器中的 .accdb 文件。

如果您熟悉网络,也许可以帮助我解决这个问题。谢谢你!

最佳答案

我相当确定没有办法让 UCanAccess 直接打开驻留在 FTP 服务器上的数据库文件。甚至像 Apache Commons VFS 这样的机制显然没有提供直接操作远程文件或将远程文件转换为 java.io.File 对象的方法。

因此,您需要先下载数据库文件,然后在 UCanAccess 连接 URL 中包含本地副本的绝对路径。

关于java - 使用 UCanAccess 和 Apache Commons Net 从远程服务器中的数据库读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239828/

相关文章:

java - 反序列化时 Jackson JSON 异常

java - jackson 反序列化具有多个名称的枚举

MySQL 仅当列中的行重复时才选择条件

java - Java UDP打洞示例-通过防火墙连接

Android Socket 高 CPU 使用率

java - 在 Micrometer 中设置动态指标描述的简洁方法是什么?

java - 表观死锁 c3p0 0.9.5.1 spring

database - 数据框到数据库表

php - php从数据库中检索多个数据到数组中

sockets - 了解眩晕工作