我们在单个Access .mdb文件中有多种数据。这是一个已建立的过程,无法更改:有几个带有VBA宏的Excel工作表写入此.mdb。
每次我们开始集成测试时,都会访问此文件,这会导致concurrentModificationExceptions - 因为它位于内部共享公共设备上。
当然我们可以将文件复制到本地文件夹并运行测试 - 但是因为我想这样做"最佳方式"每次开始整合测试时,我都希望在memoryDB(如H2)中克隆数据。
我遇到了几个问题,一个接一个地复制表格#34;通过UCanAccess,因为有很多数据类型问题。现在的问题是: Java中是否有可能将所有Access数据克隆到内存中db(如H2)而不处理数据类型,例如从access-type到... jdbc-data-types的映射...... ?
答案 0 :(得分:1)
根据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解决上述数据类型问题。