весенняя загрузка по умолчанию соединение H2 jdbc (и консоль H2)
Я просто пытаюсь увидеть содержимое базы данных H2 для встроенной базы данных H2, которую spring-boot создает, когда я ничего не указываю в своем приложении.свойства и начать с mvn spring: run. Я вижу, как hibernate JPA создает таблицы, но если я попытаюсь получить доступ к консоли h2 по URL-адресу ниже, в базе данных нет таблиц.
http://localhost:8080/console/
Я вижу предложения, как этот: просмотр содержимого встроенной базы данных H2, запущенной весной
но я не знаю где поместить предлагаемый XML в spring-boot, и даже если бы я это сделал, я не хочу, чтобы h2console был доступен больше, когда внешняя база данных настроена, поэтому более вероятно, что мне нужно обрабатывать это с помощью какого-то условного кода (или, возможно, просто разрешить spring автоматически обрабатывать его в самом идеальном случае, когда я включаю только H2, когда активирован профиль maven).
есть ли у кого-нибудь пример кода, показывающий, как заставить консоль H2 работать в загрузке (а также способ узнайте, что такое строка подключения jdbc, которую использует spring)?
10 ответов:
вот как я получил консоль H2, работающую в spring-boot с H2. Я не уверен, что это правильно, но так как никто другой не предложил решение, то я собираюсь предложить это лучший способ сделать это.
в моем случае я выбрал конкретное имя для базы данных, чтобы мне было что ввести при запуске консоли H2 (в данном случае "AZ"). Я думаю,что все это требуется, хотя это похоже на то, чтобы оставить весну.СПД.база данных-Платформа ничего не повредит.
в приложение.свойства:
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В Приложение.Ява (или конфигурации):
@Bean public ServletRegistrationBean h2servletRegistration() { ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); registration.addUrlMappings("/console/*"); return registration; }затем вы можете получить доступ к консоли H2 в {server} / console/. Введите это как URL JDBC: jdbc:h2:mem: AZ
по состоянию на Spring Boot
1.3.0.M3, консоль H2 может быть настроена автоматически.предпосылки:
- вы разрабатываете веб-приложение
- Spring Boot Dev Tools включены
- H2 находится на пути к классу
даже если вы не используете Spring Boot Dev Tools, вы все равно можете автоматически настроить консоль, установив
spring.h2.console.enabledtotrueпроверить этой часть документации для всех подробности.
обратите внимание, что при настройке в консоли доступен на сайте: http://localhost:8080/h2-console/
Я нашел хороший учебник по этой теме:
https://springframework.guru / using-the-H2-database-console-in-spring-boot-with-spring-security/
в основном правильный URL JDBC для меня был:
jdbc:h2:mem:testdb
аналогичный ответ с пошаговым руководством.
- добавить инструменты разработчика зависимость в
pom.xmlилиbuild.gradleMaven
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies>ш
dependencies { compile("org.springframework.boot:spring-boot-devtools") }
- доступ к БД с
http://localhost:8080/h2-console/- указать
jdbc:h2:mem:testdbкак JDBC URL- вы должны увидеть объект, указанный в вашем проекте в виде таблицы.
From http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
H2 Web Console (H2ConsoleProperties):
spring.h2.console.enabled=true //Enable the console. spring.h2.console.path=/h2-console //Path at which the console will be available.добавление вышеуказанных двух строк в мое приложение.файла свойств было достаточно для доступа к веб-консоли базы данных H2, используя имя Пользователя по умолчанию (sa) и пароль (пустой).
У меня были только ниже свойства в /resources/application.свойства. После запуска spring boot, используя этот URL (http://localhost:8080/h2-console/), таблица в консоли H2 была видна и прочитана для просмотра данных таблицы, также вы можете запускать простые команды SQL. Одна вещь, в вашем коде java, при извлечении данных, имена столбцов являются прописными, даже если схема.sql использует имена в нижнем регистре:)
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
если вы используете инструменты разработчика Spring Boot, он поставляется с консолью H2, включенной по умолчанию. Он может быть доступен из
/h2-console/. На интерфейсе входа в систему, для вводаJDBC URLuse valuejdbc:h2:mem:testdb. Обратите внимание наmemстроку.если вы не используете инструменты разработчика Spring Boot, вы можете включить консоль в
application.propertiesиспользуяspring.h2.console.enabled=true. Это позволит включить консоль под/h2-console. Если вы хотите изменить URL, то вы можете добавить еще одну запись сspring.h2.console.path=my_console_path.по умолчанию имя схемы
testdb.Подробнее Spring Boot Documentation.
для того, чтобы получить таблицы все, что вам нужно сделать, это создать 2 SQL-файлов схемы.SQL(для создания таблиц) и данных.sql (данные для созданных таблиц). Эти файлы должны быть помещены в папку src / main / resources. Spring boot auto обнаруживает их и заботится об остальном во время выполнения.
Если вы используете более 2 дБ в своем проекте, убедитесь, что используете определенные файлы, такие как (schema-h2.sql -- for H2 DB, schema-oracle.sql -- for oracle DB). То же самое следует соблюдать для данных.язык SQL тоже.
также убедитесь, что вы отбрасываете таблицы, добавляя оператор drop table в свою схему.sql как первый оператор. Чтобы избежать добавления дубликатов записей.
ссылка на spring boot находится здесь.
Мои приложения.свойства заключается в следующем.
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вы можете следовать инструкциям в приведенной ниже ссылке.
https://springframework.guru / using-the-H2-database-console-in-spring-boot-with-spring-security/
Я обнаружил, что с spring boot 2.0.2.Выпуск, настройка spring-boot-starter-data-jpa и com.h2database в файле POM не просто достаточно, чтобы консоль H2 работала. Вы должны настроить spring-boot-devtools, как показано ниже. По желанию вы можете следовать инструкции от Аарона Зекоски в этом посте
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>