将 Access 数据库数据克隆到 H2 之类的内存数据库?

Clone Access database data to in-memory database like H2?

我们在单个 Access .mdb 文件中有多种数据。这是一个既定的过程,无法更改:有几个 Excel 工作表,其中 VBA-macros 写入此 .mdb。

每次我们开始集成测试时都会访问此文件,这会导致并发修改异常 - 因为它位于内部共享 public 设备上。

当然我们可以将文件复制到本地文件夹并 运行 测试 - 但因为我想这样做 "the optimal way" 我更愿意将数据克隆到 memoryDB 中(比如H2) 每次启动集成测试时。

我 运行 在通过 UCanAccess 复制表 "one by one" 时遇到了几个问题,因为存在很多数据类型问题。现在的问题是: Java 是否有可能将所有访问数据克隆到内存数据库(如 H2)而不考虑数据类型,如从访问类型到 ... jdbc 的映射-数据类型...对吗?

按照 Gord Thompson 的建议,我们将连接从

切换到我们的 MS-Access-DB
        connection = DriverManager.getConnection("jdbc:ucanaccess://" + dbFile.getCanonicalPath() + ";", username, pass);

            connection = DriverManager.getConnection("jdbc:ucanaccess://" + dbFile.getCanonicalPath() + ";memory=true", username, pass);

这就是想要的结果。 UCanAccess 完成了这项工作,因此无需使用 H2 解决上述数据类型问题。