Você pode executar o servidor da web H2 em seu aplicativo que acessará o mesmo banco de dados na memória. Você também pode acessar o H2 em execução no modo de servidor usando qualquer cliente JDBC genérico como SquirrelSQL .
ATUALIZAR:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Agora você pode se conectar ao seu banco de dados via jdbc:h2:mem:foo_db
URL dentro do mesmo processo ou navegar no foo_db
banco de dados usando localhost:8082
. Lembre-se de fechar os dois servidores. Veja também: O banco de dados H2 em modo de memória não pode ser acessado pelo Console .
Você também pode usar Spring:
<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop" depends-on="h2WebServer">
<constructor-arg value="-tcp,-tcpAllowOthers,true,-tcpPort,9092"/>
</bean>
<bean id="h2WebServer" class="org.h2.tools.Server" factory-method="createWebServer" init-method="start" destroy-method="stop">
<constructor-arg value="-web,-webAllowOthers,true,-webPort,8082"/>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" depends-on="h2Server">
<property name="driverClass" value="org.h2.Driver"/>
<property name="jdbcUrl" value="jdbc:h2:mem:foo_db"/>
</bean>
BTW, você só deve depender de asserções e não da exibição manual do conteúdo do banco de dados. Use isso apenas para solução de problemas.
NB, se você usar o framework de teste Spring, você não verá as alterações feitas por uma transação em execução e esta transação será revertida imediatamente após o teste.
<constructor-arg value="-web,-webAllowOthers,-webPort,8082"/>
Server.createTcpServer("-tcpPort" ,"9092", "-tcpAllowOthers")
Server.createWebServer("-webPort", "8082", "-tcpAllowOthers")
Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start();
Para H2, você pode iniciar um servidor da web dentro de seu código durante uma sessão de depuração se você tiver um objeto de conexão de banco de dados. Você pode adicionar esta linha ao seu código ou como uma 'expressão de observação' (dinamicamente):
A ferramenta do servidor iniciará um navegador da web localmente que permite acessar o banco de dados.
fonte
No H2, o que funciona para mim é:
Eu código, iniciando o servidor como:
Isso inicia o servidor na
localhost
porta 9092.Em seguida, no código, estabeleça uma conexão de banco de dados no seguinte URL JDBC:
Durante a depuração, como cliente para inspecionar o banco de dados, eu uso o fornecido por H2, que é bom o suficiente, para iniciá-lo você só precisa iniciar o seguinte java main separadamente
Isso iniciará um servidor web com um aplicativo em 8082, iniciará um navegador em
localhost:8082
E então você pode inserir o URL anterior para ver o banco de dados
fonte
Com HSQLDB, você tem várias opções integradas.
Existem dois gerenciadores de banco de dados GUI e uma interface de linha de comandos para o banco de dados. As aulas para eles são:
Você pode iniciar um dos itens acima em seu aplicativo e acessar os bancos de dados na memória.
Um exemplo com JBoss é dado aqui:
http://docs.jboss.org/jbpm/v3.2/userguide/html/ch07s03.html
Você também pode iniciar um servidor com seu aplicativo, apontando-o para um banco de dados na memória.
fonte
Você pode expô-lo como um recurso JMX, inicializável via JConsole:
Contexto XML:
fonte
Este é um controlador Play 2 para inicializar os servidores H2 TCP e Web:
fonte
Para HSQLDB, o seguinte funcionou para mim:
E isso trouxe a GUI com minhas tabelas e dados.
Eu também tentei a versão Swing, mas ela tinha apenas um
main
, e eu não tinha certeza dos argumentos a serem aprovados. Se alguém souber, poste aqui.Só porque procurei por horas pelo nome certo do banco de dados: O nome do banco de dados é o nome da sua fonte de dados. Portanto, tente com a URL jdbc: hsqldb: mem: dataSource se você tiver um bean de origem de dados com id = dataSource. Se isso não funcionar, tente testdb que é o padrão.
fonte
Tenho um problema com a conexão remota do H2 versão 1.4.190 para inMemory (assim como no arquivo) com
Connection is broken: "unexpected status 16843008"
até não fazer downgrade para 1.3.176. Veja Grails acessando travamentos do servidor TCP H2fonte
Este é mais um comentário ao post anterior de Thomas Mueller do que uma resposta, mas não tenho reputação suficiente para isso. Outra maneira de obter a conexão se você for um modelo Spring JDBC é usando o seguinte:
Portanto, no modo de depuração, se você adicionar à visualização "Expressões" no Eclipse, ele abrirá o navegador mostrando o Console H2:
Visualização de expressões do Eclipse
H2 Console
fonte
Não sei por que está funcionando bem nas suas máquinas, mas tive que passar um dia para que funcione.
O servidor funciona com Intellij Idea U via url "jdbc: h2: tcp: // localhost: 9092 / ~ / default".
"localhost: 8082" no navegador também funciona bem.
Eu adicionei isso ao mvc-dispatcher-servlet.xml
fonte
Que tal visualizar confortavelmente (e também editar) o conteúdo em ODBC e MS-Access, Excel? Softwareversions ::
Servidor H2:
Configuração da fonte de dados ODBC do Windows10 que pode ser utilizada por qualquer cliente ODBC: No campo Databse deve ser utilizado o nome dado no parâmetro '-key'.
fonte