每当我在测试用例完成执行后搜索有关丢弃内存数据库的方法时,我就发现了这一点
'DROP SCHEMA PUBLIC CASCADE'
会做的伎俩 . 谷歌搜索了一段时间后,我发现HSQLDB每个数据库有一个目录,目录名为PUBLIC . 这是否意味着如果删除公共模式,我将删除我创建的内存数据库 .
下面是我如何创建内存表以及如何删除公共模式的示例:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:WEB-INF/jobtest-context.xml", "classpath:WEB-INF/batch-context.xml", "classpath:WEB-INF/jpa-context.xml", "classpath:WEB-INF/repositories-context.xml" })
public class XyzJobTest {
public XyzJobTest() {
System.setProperty("db.username", "sa");
System.setProperty("db.password", "");
System.setProperty("db.driver", "org.hsqldb.jdbcDriver");
System.setProperty("db.dialect", "org.hibernate.dialect.HSQLDialect");
System.setProperty("db.url", "jdbc:hsqldb:file:test");
System.setProperty("db.persistenceUnit", "esewa");
System.setProperty("db.poolsize.min", "1");
System.setProperty("db.poolsize.max", "2");
System.setProperty("db.showSql", "true");
System.setProperty("commissionjob.cron", "0 0 1 * *");
System.setProperty("db.generateDdl", "true");
System.setProperty("commission.calc.batch.size", "10");
System.setProperty("settlementBank.code", "NRBPNK");
}
public void dropSchema(){
Connection connection = (Connection) DriverManager.getConnection("jdbc:hsqldb:mem:test");
Statement statement = (Statement) connection.createStatement();
statement.executeUpdate("DROP SCHEMA PUBLIC CASCADE");
}
}
I have renamed my testCase class here .
1 回答
HSQLDB在此目录中有一个名为PUBLIC的目录(您可以更改)和一个名为PUBLIC的模式(您也可以更改) . 除了PUBLIC模式之外,您的代码还可以创建新模式 .
如果在PUBLIC架构上使用DROP SCHEMA schemaName CASCADE以及您可能已创建的所有其他架构,则将从数据库中清除所有架构 .