Incorporando o banco de dados h2 Java programaticamente
Pergunta
No momento usamos HSQLDB como um banco de dados integrado, mas procurar um banco de dados com menos consumo de memória como o volume de dados cresce.
Derby / JavaDB não é uma opção no momento, porque ele armazena propriedades globalmente nas propriedades do sistema . Então pensamos em h2 .
Enquanto nós usamos HSQLDB criamos um objeto Server, defina os parâmetros e começou. Isto é descrito aqui (e dada como exemplo na org.hsqldb.test classe .TestBase).
A pergunta é: Isso pode ser feito análoga com o banco de dados h2, também? Você tem exemplos de código para isso? Digitalizar o h2 páginas, eu não encontrei um exemplo.
Solução
A partir do download, vejo que o tutorial.html arquivo tem este
import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();
Outras dicas
Sim, você pode executar H2 no modo incorporado. Você acabou de usar o driver JDBC e se conectar a uma URL incorporada como este (o exemplo):
Esta base de dados pode ser usado em incorporado mode, ou no modo de servidor. Para usá-lo em modo incorporado, você precisa:
* Add h2.jar to the classpath * Use the JDBC driver class: org.h2.Driver * The database URL jdbc:h2:~/test opens the database 'test' in your user home directory
Exemplo de se conectar com JDBC para um banco de dados de H2 incorporado (adaptado a partir de http : //www.h2database.com/javadoc/org/h2/jdbcx/JdbcDataSource.html ):
import org.h2.jdbcx.JdbcDataSource;
// ...
JdbcDataSource ds = new JdbcDataSource();
ds.setURL("jdbc:h2:˜/test");
ds.setUser("sa");
ds.setPassword("sa");
Connection conn = ds.getConnection();
Se você está olhando para usar H2 em um modo de memória in-puramente / incorporado, você pode fazer isso também. Veja este link para mais:
Você só precisa usar uma URL especial no código JDBC normal como "jdbc: h2: mem: DB1".
Se por algum motivo você precisa de um banco de dados H2 incorporado no modo de servidor você pode fazê-lo também manualmente usando o API em http://www.h2database.com/javadoc/org/h2/ ferramentas / Server.html - ou pelo anexando;. AUTO_SERVER = TRUE para a URL do banco de dados