我正在尝试为一个单元测试创建两个单独的HSQLDB数据库。这样做的原因是真正的应用程序将针对不同的数据库执行不同的操作,因此我想测试此功能。但是,我似乎无法实际初始化两个单独的数据库实例。我有这个:
new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.HSQL)
.setName("DB1")
.addScript("db/sql/create-db.sql")
.addScript("db/sql/insert-data-db1.sql")
.build();
BasicDataSource dataSource1 = new BasicDataSource();
dataSource1.setUsername("TESTUSER");
dataSource1.setPassword("Password1");
dataSource1.setDriverClassName("org.hsqldb.jdbcDriver");
dataSource1.setUrl("jdbc:hsqldb:mem:DB1");
new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.HSQL)
.generateUniqueName(true)
.setName("DB2")
.addScript("db/sql/create-db.sql")
.addScript("db/sql/insert-data-db2.sql")
.build();
BasicDataSource dataSource2 = new BasicDataSource();
dataSource2.setUsername("TESTUSER");
dataSource2.setPassword("Password1");
dataSource2.setDriverClassName("org.hsqldb.jdbcDriver");
dataSource2.setUrl("jdbc:hsqldb:mem:DB2");
当它尝试运行create-db.sql脚本,说明所有对象已经存在时,它在第二个数据库上咆哮。所以,这告诉我它没有将它运行到一个单独的实例中。有没有办法实际做到这一点?