2

我的应用程序背后的想法是通过将整个 .mdb 文件下载到客户端,记录他们所做的更改并每天为每个客户上传一次这些更改,从而消除客户对我的数据库(采用 .mdb 格式)的直接访问。我遇到的问题是在使用 ucanaccess 时,它似乎每次调用 getDatabase2() 时都会加载整个数据库。在控制台中,这是我无限次获得的,直到应用程序加载。(这将花费很多时间)。反正有没有让 ucanaccess 只做桥接的东西(只是交易)?或者也许我使用了错误的方法?.mdb 文件大小为 50Mo,最多包含 80-100k 个条目。我使用的是 windows XP、Eclipse、Java 7。getDataBase 的代码如下

private static Connection getDatabase2() throws Exception{


    String url="jdbc:ucanaccess:////Jv1kbafap001/teams/Medic/database.mdb;memory=false";
    String user="admin";
    String pass="";
    return DriverManager.getConnection(url,user,pass);
}
4

1 回答 1

2

在下一个ucanaccess版本(2.0.9.1)中,专门针对memory=false的情况,加载时间(第一次连接的时间)会明显减少。支持部分加载超出了我的计划,因为我认为已经有一个解决方案:您只需使用另一个“过滤器”mdb,它只指向您的事务所需的表,将它们链接为外部资源(在换句话说,它们必须用作链接表)。请注意,您可以使用 remap 连接参数来覆盖原始外部数据库路径。

于 2014-09-29T10:57:42.053 回答