HSQLDB如何在内存数据库中拥有多个

HSQLDB how to have multiple in memory databases

例如,对于每个单元测试,我想使用一个 "different" 数据库,但在同一个 JVM 中。

似乎 "first time" 您创建了一个 HSQL 内存数据库,它成为 "canonical" 密码:

String DB_CONNECTION_STR = "jdbc:hsqldb:mem:MySpecialTestDb"; 
String DB_USERNAME_STR = "sa";
String DB_USERNAME_PASSWORD = "";
DriverManager.getConnection(DB_CONNECTION_STR, DB_USERNAME_STR, DB_USERNAME_PASSWORD);

在此之后,如果您创建到 jdbc:hsqldb:mem:MySpecialTestDb 的新连接,它将连接到同一个数据库(并且您将需要相同的用户名和密码,除非您拥有 运行 某些权限在其中授予)。所以要创建第二个数据库,只需指定一个不同的名称,and/or 密码:

String DB_CONNECTION_STR = "jdbc:hsqldb:mem:AnotherTestDb"; 
String DB_USERNAME_STR = "sa"; // could use different here, doesn't matter
String DB_USERNAME_PASSWORD = "";
DriverManager.getConnection(DB_CONNECTION_STR, DB_USERNAME_STR, DB_USERNAME_PASSWORD);

它会有效地为您创建一个新的内存数据库。

另见