我的应用程序背后的想法是通过将整个 .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);
}
最佳答案
在下一个ucanaccess版本(2.0.9.1)中,加载时间(第一次连接的时间)将显着减少,特别是针对内存= false的情况。 支持部分加载不在我的计划之内,因为我认为已经有一个解决方案:您只需使用另一个“过滤器”mdb,它仅指向您的事务所需的表,将它们链接为外部资源(在换句话说,它们必须用作链接表)。 请注意,您可以使用重映射连接参数来覆盖原始外部数据库路径。
关于java - ucanaccess 系统重载,该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096830/