Pergunta

No processo de banco de dados HSQLDB não são esperados para ser aberto por outros, mesmo para armazenamento baseado em arquivo.

As dicas de documentação que isso é possível: modos de servidor , Tópicos avançados , mas eu ainda não tenha encontrado um URL para saber como ativar esse comportamento.

Será que alguém fazer isso para que eles possam compartilhar como?

Foi útil?

Solução

Os seguintes trabalhos para mim:

  1. Iniciar um servidor do seu código, que é mostrado no código org.hsqldb.test.TestBase no código fonte HSQLDB. Algo como:

    Server server = new Server();
    server.setDatabaseName(0, "test");
    server.setDatabasePath(0, "file:/path/to/db");
    server.start();
    
  2. Na mesma JVM, abrir uma conexão com o mesmo banco de dados da forma que faria em um programa normal (não-Server), como:

    conn = DriverManager.getConnection("jdbc:hsqldb:file:/path/to/db");
    

Em seguida, use conn para executar tudo o SQL que você deseja.

Na minha própria experimentação Esta parece trabalho, e ele funciona para in-memory e banco de dados de arquivo.

Outros JVMs, é claro, terá que se conectar ao servidor usando TCP. Tentando abrir o arquivo de banco de dados diretamente em outro JVM irá resultar no erro habitual sobre o banco de dados está sendo bloqueado.

Outras dicas

Eu tenho experiência com começando HQLDB no modo de servidor fora do aplicativo e conectar-se a partir de várias aplicações ao banco de dados.

Tal como descrito no doc o processo é simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top