Saltar al contenido

Ver el contenido de la base de datos en memoria H2 o HSQLDB

Solución:

Puede ejecutar el servidor web H2 dentro de su aplicación que accederá a la misma base de datos en memoria. También puede acceder al H2 que se ejecuta en modo servidor utilizando cualquier cliente JDBC genérico como SquirrelSQL.

ACTUALIZAR:

Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();

Ahora puede conectarse a su base de datos a través de jdbc:h2:mem:foo_db URL dentro del mismo proceso o navegue por el foo_db base de datos usando localhost:8082. Recuerde cerrar ambos servidores. Consulte también: La consola no puede acceder a la base de datos H2 en modo de memoria.

También puedes 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>

Por cierto, solo debe depender de las afirmaciones y no de la inspección manual del contenido de la base de datos. Use esto solo para solucionar problemas.

Nota: si usa el marco de prueba de Spring, no verá los cambios realizados por una transacción en ejecución y esta transacción se revertirá inmediatamente después de la prueba.

Para H2, puede iniciar un servidor web dentro de su código durante una sesión de depuración si tiene un objeto de conexión a la base de datos. Puede agregar esta línea a su código, o como una ‘expresión de observación’ (dinámicamente):

org.h2.tools.Server.startWebServer(conn);

La herramienta del servidor iniciará un navegador web localmente que le permitirá acceder a la base de datos.

En H2, lo que me funciona es:

Codifico, iniciando el servidor como:

server = Server.createTcpServer().start();

Eso inicia el servidor en localhost puerto 9092.

Luego, en el código, establezca una conexión de base de datos en la siguiente URL de JDBC:

jdbc:h2:tcp://localhost:9092/mem:test;DB_CLOSE_DELAY=-1;MODE=MySQL

Durante la depuración, como cliente para inspeccionar la base de datos, utilizo el proporcionado por H2, que es lo suficientemente bueno, para iniciarlo solo necesita iniciar el siguiente java main por separado

org.h2.tools.Console

Esto iniciará un servidor web con una aplicación en 8082, iniciará un navegador en localhost:8082

Y luego puede ingresar la URL anterior para ver la base de datos

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *