복붙노트

[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. ==============================

    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. ==============================

    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. ==============================

    3.이 주제에 대한 훌륭한 자습서를 찾았습니다.

    이 주제에 대한 훌륭한 자습서를 찾았습니다.

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

    기본적으로 올바른 JDBC URL은 jdbc : h2 : mem : testdb입니다.

  4. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    10.H2 콘솔에 로그인 할 때 경로로 jdbc : h2 : mem : testdb를 사용하십시오.

    H2 콘솔에 로그인 할 때 경로로 jdbc : h2 : mem : testdb를 사용하십시오.

    스프링 부트 속성을 변경했다면 데이터 소스가 다를 수 있지만, 기본값을 찾는 방법에 어려움을 겪고있는 것처럼 보입니다. 그게 전부입니다! H2에 로그인 한 후 스키마를 볼 수 있습니다.

  11. ==============================

    11.Spring application.properties 확인

    Spring application.properties 확인

    testdb는 데이터베이스 정의이다. h2 콘솔이 동일한 값을 가지고 있는지 확인하십시오. 다른 h2 콘솔은 기본 db에 연결합니다.

  12. from https://stackoverflow.com/questions/24655684/spring-boot-default-h2-jdbc-connection-and-h2-console by cc-by-sa and MIT license