[SPRING] 봄 부팅 기본 H2 JDBC 연결 (및 H2 콘솔)
SPRING봄 부팅 기본 H2 JDBC 연결 (및 H2 콘솔)
나는 봄베이가 내 application.properties에서 아무것도 지정하지 않고 mvn spring : run으로 시작할 때 생성하는 임베디드 H2 데이터베이스에 대한 H2 데이터베이스 컨텐츠를 보려고 애 쓰고있다. 최대 절전 모드 JPA가 테이블을 생성하는 것을 볼 수 있지만 데이터베이스 아래의 URL에서 h2 콘솔에 액세스하려고하면 테이블이 없습니다.
http://localhost:8080/console/
나는 이것과 같은 제안을 본다. 스프링에 의해 시작된 임베디드 H2 데이터베이스의 내용보기
하지만 스프링 부트에 제안 된 XML을 어디에 넣어야할지 모르겠다. 그렇더라도 h2console을 외부 데이터베이스를 구성 할 때 더 이상 사용하지 않으려 고하므로이 작업을 처리해야 할 가능성이 더 높습니다. 어떤 종류의 조건부 코드 (또는 아마도 maven 프로파일이 활성화 될 때 H2 만 포함하는 가장 이상적인 경우에 스프링이 자동으로 처리하도록 허용합니다).
누구든지 부팅시 작동하는 H2 콘솔을 얻는 방법을 보여주는 샘플 코드가 있습니까? 또한 스프링이 사용하는 jdbc 연결 문자열을 찾는 방법은 무엇입니까?
해결법
-
==============================
1.이것은 H2 부트 셸에서 H2 콘솔을 사용하는 방법입니다. 나는 이것이 옳은 것인지 확신 할 수 없지만 아무도 해결책을 제시하지 못했기 때문에 이것이 최선의 방법이라고 제안 할 것입니다.
이것은 H2 부트 셸에서 H2 콘솔을 사용하는 방법입니다. 나는 이것이 옳은 것인지 확신 할 수 없지만 아무도 해결책을 제시하지 못했기 때문에 이것이 최선의 방법이라고 제안 할 것입니다.
내 경우에는 데이터베이스의 특정 이름을 선택하여 H2 콘솔 (이 경우 "AZ")을 시작할 때 입력 할 내용이 있어야합니다. 나는 spring.jpa.database-platform을 떠나지 않는 것처럼 보이지만 이것들은 모두 필요하다고 생각합니다. 플랫폼은 아무런 상처를주지 않습니다.
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
Application.java (또는 일부 설정) :
@Bean public ServletRegistrationBean h2servletRegistration() { ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); registration.addUrlMappings("/console/*"); return registration; }
그러면 {server} / console /에서 H2 콘솔에 액세스 할 수 있습니다. 이것을 JDBC URL로 입력하십시오 : jdbc : h2 : mem : AZ
-
==============================
2.Spring Boot 1.3.0.M3부터는 H2 콘솔을 자동으로 구성 할 수 있습니다.
Spring Boot 1.3.0.M3부터는 H2 콘솔을 자동으로 구성 할 수 있습니다.
전제 조건은 다음과 같습니다.
Spring Boot Dev Tools를 사용하지 않더라도 spring.h2.console.enabled를 true로 설정하여 콘솔을 자동 구성 할 수 있습니다
모든 세부 사항은 문서의이 부분을 확인하십시오.
이 방법으로 구성 할 때 콘솔은 http : // localhost : 8080 / h2-console /
-
==============================
3.이 주제에 대한 훌륭한 자습서를 찾았습니다.
이 주제에 대한 훌륭한 자습서를 찾았습니다.
https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/
기본적으로 올바른 JDBC URL은 jdbc : h2 : mem : testdb입니다.
-
==============================
4.단계별 가이드와 비슷한 대답.
단계별 가이드와 비슷한 대답.
메이븐
<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") }
-
==============================
5.http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html에서
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html에서
H2 웹 콘솔 (H2 콘솔 등록 정보) :
spring.h2.console.enabled=true //Enable the console. spring.h2.console.path=/h2-console //Path at which the console will be available.
위의 두 줄을 내 application.properties 파일에 추가하면 기본 사용자 이름 (sa)과 암호 (empty)를 사용하여 H2 데이터베이스 웹 콘솔에 액세스 할 수있었습니다.
-
==============================
6./resources/application.properties에있는 속성이 아래에 있습니다. 이 URL (http : // localhost : 8080 / h2-console /)을 사용하여 스프링 부트를 실행 한 후 H2 콘솔의 테이블을보고 읽을 수 있으며 테이블 데이터를 볼 수 있으며 간단한 SQL 명령을 실행할 수도 있습니다. 한 가지, 자바 코드에서 데이터를 가져 오는 동안 schema.sql이 소문자 이름을 사용하더라도 열 이름은 대문자입니다.
/resources/application.properties에있는 속성이 아래에 있습니다. 이 URL (http : // localhost : 8080 / h2-console /)을 사용하여 스프링 부트를 실행 한 후 H2 콘솔의 테이블을보고 읽을 수 있으며 테이블 데이터를 볼 수 있으며 간단한 SQL 명령을 실행할 수도 있습니다. 한 가지, 자바 코드에서 데이터를 가져 오는 동안 schema.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
-
==============================
7.Spring Boot의 개발자 도구를 사용하는 경우 기본적으로 H2 Console이 활성화되어 있습니다. / h2-console /에서 액세스 할 수 있습니다. 로그인 인터페이스에서 입력 JDBC URL 사용 값 jdbc : h2 : mem : testdb. mem 문자열에주의하십시오.
Spring Boot의 개발자 도구를 사용하는 경우 기본적으로 H2 Console이 활성화되어 있습니다. / h2-console /에서 액세스 할 수 있습니다. 로그인 인터페이스에서 입력 JDBC URL 사용 값 jdbc : h2 : mem : testdb. mem 문자열에주의하십시오.
Spring Boot의 개발자 도구를 사용하지 않으면 spring.h2.console.enabled = true를 사용하여 application.properties에서 콘솔을 활성화 할 수 있습니다. 이렇게하면 / h2-console에서 콘솔을 사용할 수 있습니다. URL을 변경하려면 spring.h2.console.path = my_console_path와 함께 다른 항목을 추가 할 수 있습니다.
기본 스키마 이름은 testdb입니다.
Spring Boot Documentation에 자세히 설명되어있다.
-
==============================
8.테이블을 얻으려면 두 개의 SQL 파일 schema.sql (테이블 작성 용) 및 data.sql (작성 테이블 용 데이터)을 작성해야합니다. 이 파일들은 src / main / resources 폴더에 저장됩니다. 스프링 부트는 자동으로이를 감지하고 런타임 중에 나머지를 처리합니다.
테이블을 얻으려면 두 개의 SQL 파일 schema.sql (테이블 작성 용) 및 data.sql (작성 테이블 용 데이터)을 작성해야합니다. 이 파일들은 src / main / resources 폴더에 저장됩니다. 스프링 부트는 자동으로이를 감지하고 런타임 중에 나머지를 처리합니다.
프로젝트에서 2 개 이상의 DB를 사용하는 경우 (schema-h2.sql - h2 DB의 경우 schema-oracle.sql - oracle DB의 경우)와 같은 특정 파일을 사용해야합니다. data.sql도 마찬가지입니다.
또한 schema.sql의 drop table 문을 첫 번째 문으로 추가하여 테이블을 삭제하십시오. 중복 된 레코드가 추가되지 않도록하십시오.
봄 부츠에 대한 링크가 여기에 있습니다.
내 application.properties는 다음과 같습니다.
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/
-
==============================
9.스프링 부트 2.0.2.RELEASE를 사용하면 POM 파일에서 spring-boot-startter-data-jpa 및 com.h2 데이터베이스를 구성하는 것이 H2 콘솔을 작동시키기에 충분하지 않음을 발견했습니다. 다음과 같이 spring-boot-devtools를 구성해야합니다. 선택 사항으로이 게시물에서 Aaron Zeckoski의 지시를 따를 수 있습니다.
스프링 부트 2.0.2.RELEASE를 사용하면 POM 파일에서 spring-boot-startter-data-jpa 및 com.h2 데이터베이스를 구성하는 것이 H2 콘솔을 작동시키기에 충분하지 않음을 발견했습니다. 다음과 같이 spring-boot-devtools를 구성해야합니다. 선택 사항으로이 게시물에서 Aaron Zeckoski의 지시를 따를 수 있습니다.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
-
==============================
10.H2 콘솔에 로그인 할 때 경로로 jdbc : h2 : mem : testdb를 사용하십시오.
H2 콘솔에 로그인 할 때 경로로 jdbc : h2 : mem : testdb를 사용하십시오.
스프링 부트 속성을 변경했다면 데이터 소스가 다를 수 있지만, 기본값을 찾는 방법에 어려움을 겪고있는 것처럼 보입니다. 그게 전부입니다! H2에 로그인 한 후 스키마를 볼 수 있습니다.
-
==============================
11.Spring application.properties 확인
Spring application.properties 확인
testdb는 데이터베이스 정의이다. h2 콘솔이 동일한 값을 가지고 있는지 확인하십시오. 다른 h2 콘솔은 기본 db에 연결합니다.
from https://stackoverflow.com/questions/24655684/spring-boot-default-h2-jdbc-connection-and-h2-console by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] server.xml 또는 context.xml에 데이터베이스 연결 속성을 설정해야합니까? (0) | 2018.12.21 |
---|---|
[SPRING] 런타임시 Spring bean 정의를 대체 할 수 있습니까? (0) | 2018.12.21 |
[SPRING] Spring MVC 애플리케이션에서 Swagger를 구현하는 '간단한'방법 (0) | 2018.12.21 |
[SPRING] 세션없이 Spring Security를 사용하려면 어떻게해야합니까? (0) | 2018.12.21 |
[SPRING] Spring RestTemplate 매개 변수로 GET (0) | 2018.12.21 |