Eu crio e uso um banco de dados H2 na memória (sem gravação no armazenamento) para demonstrações e testes rápidos usando este código em Java:
Connection conn = DriverManager.getConnection( "jdbc:h2:mem:example_db" ) ;
Isso funciona na primeira vez, mas depois o banco de dados parece desaparecer, indisponível para trabalhos posteriores. Como posso usar o mesmo banco de dados na memória ao longo do tempo?
Definir
DB_CLOSE_DELAY=-1
Por padrão, um banco de dados na memória em H2 é descartado após o fechamento da conexão.
Para substituir esse comportamento padrão, defina
DB_CLOSE_DELAY
como negativo. Você pode fazer isso:Caminho JDBC
Para manter o banco de dados em existência apesar do fechamento da conexão, adicione um elemento ao seu caminho JDBC. O banco de dados continuará vivo na memória até que seu aplicativo seja encerrado. Assim, você pode fazer conexões sucessivas com o mesmo banco de dados contínuo.
Dica: Observe o SEMICOLON (não COLON) entre o nome do banco de dados e este elemento.
Se você quiser chamar explicitamente o comportamento padrão, defina
0
. Por alguns segundos antes de descartar o banco de dados após o fechamento da última conexão, passe um número inteiro positivo ( >=1 ).Esse recurso é abordado no manual na seção Banco de dados na memória no último parágrafo.
Comando SQL
Essa configuração também pode ser manipulada em tempo de execução por meio do
SET DB_CLOSE_DELAY
comando, passando um inteiro.Para citar essa documentação: