Como executar um servidor HSQLDB no modo somente de memória
Pergunta
Na documentação do HSQLDB é uma instrução LINHA DE COMANDO para iniciar um servidor HSQLDB (HSQLDB Doc). Mas existe esta propriedade "Arquivo: MyDB", então presumo que não esteja no modo somente de memória.
Como faço para executar um servidor HSQLDB somente de memória?
Eu corri o seguinte, mas não tenho idéia.
java -cp ../lib/hsqldb.jar org.hsqldb.Server -?
Solução
usar java -cp .\hsqldb-1.8.0.10.jar org.hsqldb.Server -database.0 mem:aname
No modo de memória, é especificado pelo URL da conexão - por isso mem
Protocolo - ou se você estiver usando o HSQLDB em outro aplicativo que permite especificar o URL de conexão como JDBC, especifique jdbc:hsqldb:mem:aname
.
Outras dicas
Demorou cerca de 2 dias para eu descobrir como iniciar um servidor na memória e depois acessar de fora. Espero que isso economize o tempo de alguém.
Server server = new Server();
server.setDatabaseName(0, "mainDb");
server.setDatabasePath(0, "mem:mainDb");
server.setDatabaseName(1, "standbyDb");
server.setDatabasePath(1, "mem:standbyDb");
server.setPort(9001); // this is the default port
server.start();
Quando você precisa acessar o banco de dados na memória para qualquer crud, aqui está o que você precisa fazer:-
String url="jdbc:hsqldb:hsql://192.168.5.1:9001/mainDb";
Class.forName("org.hsqldb.jdbc.JDBCDriver");
Connection conn = DriverManager.getConnection(url, "SA", "");
onde 192.168.5.1 é o IP do servidor em que o HSQL está em execução. Para conectar -se ao standbydb, substitua o MaiDB pelo standbydb na primeira linha. Depois de obter a conexão, você pode executar todas as operações relacionadas ao banco de dados.
Para conectar -se ao servidor a partir do controle remoto usando o Databasemanagerswing, aqui está o que você precisa fazer.
Faça o download do Jar HSQLDB-XXX e copie-o para uma pasta (xxx é a versão) Abra um terminal ou prompt de comando e CD para a pasta e execute
java -cp hsqldb-x.x.x.jar org.hsqldb.util.DatabaseManagerSwing
Selecione "Servidor de mecanismo de banco de dados HSQL" do tipo de suspensão do tipo "JDBC: HSQLDB: HSQL: //192.168.5.1: 9001/mantDB" como o URL. Isso o conectará à instância do servidor in-memory remoto HSQL.
Codificação feliz !!
DBManagerswing Ui
Acredito que o arquivo é usado para carregar o banco de dados na memória e depois persistir quando o servidor parar. Eu não acho que o arquivo seja acessado enquanto você está sendo executado.
Já faz um tempo desde que usei o HSQLDB (ou H2), mas tenho certeza de que é assim que funciona.