首页 文章

我在Junit测试用例中创建了一个内存hsql数据库 . 它属于PUBLIC架构吗?

提问于
浏览
1

每当我在测试用例完成执行后搜索有关丢弃内存数据库的方法时,我就发现了这一点

'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 回答

  • 0

    HSQLDB在此目录中有一个名为PUBLIC的目录(您可以更改)和一个名为PUBLIC的模式(您也可以更改) . 除了PUBLIC模式之外,您的代码还可以创建新模式 .

    如果在PUBLIC架构上使用DROP SCHEMA schemaName CASCADE以及您可能已创建的所有其他架构,则将从数据库中清除所有架构 .

相关问题