我有一个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/