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

时间:2016-06-16 03:07:19

标签: hsqldb in-memory-database

例如,对于每个单元测试,我想要使用“不同”的数据库,但是在同一个JVM中。

1 个答案:

答案 0 :(得分:1)

出现“第一次”创建HSQL内存数据库,该数据库成为“规范”密码:

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它将连接到同一个数据库(你需要相同的用户名和密码,除非你在其中运行了一些特权授予) 。因此,要创建第二个数据库,只需指定其他名称和/或密码:

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);

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

另见https://stackoverflow.com/a/23544323/32453