1

我正在使用 HSQLDB 2.2.9 版进行测试。当我在内存数据库中创建命名时,调用关闭函数后文件不会被删除。在我的文件系统上,我有文件夹 DBname.tmp 和文件 DBname.lck、DBname.log、DBname.properties 和 DBname.script。据我了解文档(http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_connection_url)它不应该发生。

为了测试,我使用以下代码:

import java.io.IOException;
import org.hsqldb.Server;
import org.hsqldb.persist.HsqlProperties;
import org.hsqldb.server.ServerAcl.AclFormatException;
import org.junit.Test;

public class HSQLDBInMemTest {

    @Test
    public void test() throws IOException, AclFormatException {
        HsqlProperties props = new HsqlProperties();
        props.setProperty("server.database.0", "test1");
        props.setProperty("server.dbname.0", "test1");

        props.setProperty("server.database.1", "test2");
        props.setProperty("server.dbname.1", "test2");
        Server hsqlServer = new Server();
        hsqlServer.setRestartOnShutdown(false);
        hsqlServer.setNoSystemExit(true);
        hsqlServer.setProperties(props);
        hsqlServer.start();

        hsqlServer.shutdown();
    }
}
4

1 回答 1

0

在这里回答:http: //sourceforge.net/mailarchive/message.php ?msg_id=30881908 by fredt

代码应如下所示:

import java.io.IOException;
import org.hsqldb.Server;
import org.hsqldb.persist.HsqlProperties;
import org.hsqldb.server.ServerAcl.AclFormatException;
import org.junit.Test;

public class HSQLDBInMemTest {

@Test
public void test() throws IOException, AclFormatException {
    HsqlProperties props = new HsqlProperties();
    props.setProperty("server.database.0", "mem:test1");

    props.setProperty("server.database.1", "mem:test2");
    Server hsqlServer = new Server();
    hsqlServer.setRestartOnShutdown(false);
    hsqlServer.setNoSystemExit(true);
    hsqlServer.setProperties(props);
    hsqlServer.start();

    hsqlServer.shutdown();
}
}

内存数据库的路径看起来像props.setProperty("server.database.0", "mem:test1");

于 2013-05-23T08:02:12.957 回答