working not consola java spring jpa h2 spring-boot

java - not - h2 database http console



conexión predeterminada primavera jdbc H2(y consola H2) (9)

A partir de Spring Boot 1.3.0.M3 , la consola H2 se puede configurar automáticamente.

Los requisitos previos son:

  • Usted está desarrollando una aplicación web
  • Las herramientas Spring Boot Dev están habilitadas
  • H2 está en el classpath

Incluso si no usa Spring Boot Dev Tools, aún puede configurar automáticamente la consola configurando spring.h2.console.enabled en true

Vea this parte de la documentación para todos los detalles.

Tenga en cuenta que al configurar de esta manera, se puede acceder a la consola en: http://localhost:8080/h2-console/

Simplemente estoy tratando de ver el contenido de la base de datos H2 para una base de datos H2 incrustada que spring-boot crea cuando no especifico nada en mi application.properties y comienzo con mvn spring: run. Puedo ver hibernate JPA creando las tablas, pero si trato de acceder a la consola h2 en la URL a continuación, la base de datos no tiene tablas.

http://localhost:8080/console/

Veo sugerencias como esta: Ver el contenido de la base de datos H2 incrustada iniciada por Spring

Pero no sé dónde colocar el XML sugerido en spring-boot, e incluso si lo hiciera, no quiero que h2console esté disponible cuando se configure una base de datos externa, por lo que es más probable que necesite manejar esto. con algún tipo de código condicional (o tal vez solo permita que Spring lo maneje automáticamente en el caso más ideal, donde solo incluyo H2 cuando se activa un perfil de experto).

¿Alguien tiene algún código de muestra que muestre cómo hacer funcionar la consola H2 en el arranque (y también la manera de averiguar qué es la cadena de conexión jdbc que está utilizando la primavera)?


Así es como obtuve la consola H2 trabajando en Spring-boot con H2. No estoy seguro si esto es correcto, pero dado que nadie más ha ofrecido una solución, le sugiero que es la mejor manera de hacerlo.

En mi caso, elegí un nombre específico para la base de datos para tener algo que ingresar al iniciar la consola H2 (en este caso, "AZ"). Creo que todo esto es necesario, aunque parece que no se usa la plataforma spring.jpa.database.

En application.properties:

spring.datasource.url=jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

En Application.java (o alguna configuración):

@Bean public ServletRegistrationBean h2servletRegistration() { ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); registration.addUrlMappings("/console/*"); return registration; }

Luego puede acceder a la consola H2 en {server} / console /. Ingrese esto como la URL JDBC: jdbc: h2: mem: AZ


De http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

Consola web H2 (H2ConsoleProperties):

spring.h2.console.enabled=true //Enable the console. spring.h2.console.path=/h2-console //Path at which the console will be available.

Agregar las dos líneas anteriores a mi archivo application.properties fue suficiente para acceder a la consola web de la base de datos H2, utilizando el nombre de usuario predeterminado (sa) y la contraseña (vacía).


Descubrí que con Spring boot 2.0.2.RELEASE, la configuración de spring-boot-starter-data-jpa y com.h2database en el archivo POM no es suficiente para que la consola H2 funcione. Debe configurar spring-boot-devtools como se muestra a continuación. Opcionalmente podrías seguir las instrucciones de Aaron Zeckoski en esta publicación

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>



Para obtener las tablas, todo lo que necesita hacer es crear 2 archivos sql schema.sql (para la creación de tablas) y data.sql (datos para las tablas creadas). Estos archivos se colocarán en la carpeta src / main / resources. Spring boot auto los detecta y se ocupa del resto durante el tiempo de ejecución.

Si usa más de 2 DB en su proyecto, asegúrese de usar archivos específicos como (schema-h2.sql - para h2 DB, schema-oracle.sql - para Oracle DB). Lo mismo que se debe seguir para data.sql también.

También asegúrese de eliminar tablas al agregar declaración de tabla desplegable en su schema.sql como primera instrucción. Para evitar agregar registros duplicados.

El enlace para el arranque de primavera está aquí.

Mi application.properties es el siguiente.

spring.datasource.url=jdbc:h2:~/file/Shiva;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.datasource.platform=h2 spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.h2.console.enabled=true spring.datasource.initialize=true spring.error.whitelabel.enabled=true spring.h2.console.path=/console spring.jpa.hibernate.ddl-auto=none spring.datasource.continue-on-error=true spring.jpa.hibernate.ddl-auto=create spring.hibernate.hbm2ddl.auto=update spring.hibernate.show_sql=true

Puede seguir los pasos en el siguiente enlace.

https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/


Si usa las herramientas de desarrollador de Spring Boot, viene con la Consola H2 activada de manera predeterminada. Se puede acceder desde /h2-console /. En la interfaz de inicio de sesión, para la entrada JDBC URL use el valor jdbc:h2:mem:testdb . Presta atención a la cadena de mem .

Si no utiliza las herramientas de desarrollador de Spring Boot, puede habilitar la consola en application.properties utilizando spring.h2.console.enabled=true . Esto habilitará la consola en /h2-console . Si desea cambiar la URL, puede agregar otra entrada con spring.h2.console.path=my_console_path .

El nombre de esquema predeterminado es testdb .

Más detalles en docs.spring.io/spring-boot/docs/current/reference/html/… .


Solo tenía propiedades debajo en /resources/application.properties. Después de ejecutar el arranque de primavera, usando esta URL ( http://localhost:8080/h2-console/ ), la tabla en la consola H2 era visible y se leía para ver los datos de la tabla, también puede ejecutar comandos SQL simples. Una cosa, en su código java, mientras obtiene datos, los nombres de las columnas son mayúsculas, aunque schema.sql está usando minúsculas :)

spring.datasource.initialize=true spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=- 1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.h2.console.enabled=true


Una respuesta similar con la guía paso a paso.

  1. Agregue la dependencia de Herramientas de desarrollador a su pom.xml o build.gradle

Maven

<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies>

Gradle

dependencies { compile("org.springframework.boot:spring-boot-devtools") }

  1. Acceda a la base de datos desde http://localhost:8080/h2-console/
  2. Especifique jdbc:h2:mem:testdb como URL JDBC
  3. Debería ver la entidad que especificó en su proyecto como una tabla.