例如,对于每个单元测试,我想要使用“不同”的数据库,但是在同一个JVM中。
答案 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);
它将为您有效地创建一个新的内存数据库。