[SPRING] 스프링에 의해 시작된 임베디드 H2 데이터베이스의 내용보기
SPRING스프링에 의해 시작된 임베디드 H2 데이터베이스의 내용보기
다음 구성 덕분에 Spring에서 시작한 H2 데이터베이스의 내용을 웹 브라우저에서보고 싶습니다.
<jdbc:embedded-database id="dataSource" type="H2" />
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:db/populateDB.sql"/>
</jdbc:initialize-database>
로그에서 JDBC URL을 검색했습니다.
DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem:dataSource;DB_CLOSE_DELAY=-1]
그래서 다음과 같이 연결 양식을 채울 수 있습니다.
그러나 유감스럽게도 db는 여전히 비어있는 반면 populateDB.sql 스크립트로 인해 없어야합니다.
어떤 생각?
감사!
해결법
-
==============================
1.H2 또는 HSQLDB in-memory 데이터베이스의 View 내용과 거의 같은 질문입니다.
H2 또는 HSQLDB in-memory 데이터베이스의 View 내용과 거의 같은 질문입니다.
구성에 다음을 추가하기 만하면됩니다.
<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,-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,-webPort,8082"/> </bean>
이렇게하면 웹 브라우저 (jdbc : h2 : mem : dataSource를 URL로 입력)로 포트 8082에 액세스하거나 외부 SQL 클라이언트로 포트 9092에 액세스 할 수 있도록 포함 된 데이터베이스와 동일한 JVM에서 H2 웹 콘솔과 TCP 서버가 시작됩니다 SQuirereLSQL과 같은 데이터를 확인하고 동일한 데이터를 봅니다.
-
==============================
2.데이터베이스 URL jdbc : h2 : mem : dataSource는 메모리 내 데이터베이스를 사용 중임을 의미합니다. 이제 두 번째 Java 프로세스를 시작하고이 데이터베이스에 연결하면 결국 두 개의 메모리 내 데이터베이스 (각 프로세스에 하나씩)가 생깁니다.
데이터베이스 URL jdbc : h2 : mem : dataSource는 메모리 내 데이터베이스를 사용 중임을 의미합니다. 이제 두 번째 Java 프로세스를 시작하고이 데이터베이스에 연결하면 결국 두 개의 메모리 내 데이터베이스 (각 프로세스에 하나씩)가 생깁니다.
기존 데이터베이스에 연결하려면 여러 가지 옵션이 있습니다.
-
==============================
3.스프링 부트를 사용하면 application.properties 파일의 몇 가지 구성으로이 작업을 수행 할 수 있습니다.
스프링 부트를 사용하면 application.properties 파일의 몇 가지 구성으로이 작업을 수행 할 수 있습니다.
spring.h2.console.enabled=true spring.h2.console.path=/console/
그런 다음 http : // localhost : 8080 / console /에서 h2 웹 콘솔에 액세스 할 수 있습니다. 기본 로그인 구성은 변경하지 않으면 작동합니다.
스프링 부트 문서를 참조하십시오.
-
==============================
4.Spring Boot를 사용할 때 다음과 같이 H2 Console Servlet을 등록 할 수 있습니다.
Spring Boot를 사용할 때 다음과 같이 H2 Console Servlet을 등록 할 수 있습니다.
@Bean public ServletRegistrationBean h2servletRegistration() { ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); registration.addUrlMappings("/console/*"); registration.addInitParameter("webAllowOthers", "true"); return registration; }
콘솔을 원격에서 사용할 수있게하려면 addInitParameter를 사용하여 "webAllowOthers"를 "true"로 설정하십시오.
-
==============================
5.xml jdbc 설정과 함께 embeddeb를 사용하면 데이터베이스의 기본 이름은 'testdb' 당신의 URL 연결에서 사용해보십시오 : jdbc : h2 : mem : testdb; DB_CLOSE_DELAY = -1
xml jdbc 설정과 함께 embeddeb를 사용하면 데이터베이스의 기본 이름은 'testdb' 당신의 URL 연결에서 사용해보십시오 : jdbc : h2 : mem : testdb; DB_CLOSE_DELAY = -1
-
==============================
6.Java Config 설정을 원한다면 ServletContextInitializer를 구현하고 Console Server를 연결할 때 TCP 서버를 초기화하는 것이 매우 쉽습니다 ...
Java Config 설정을 원한다면 ServletContextInitializer를 구현하고 Console Server를 연결할 때 TCP 서버를 초기화하는 것이 매우 쉽습니다 ...
@Configuration public class WebConfig implements ServletContextInitializer{ ... @Override public void onStartup( ServletContext servletContext ) //do stuff onStartUp... initH2TCPServer( servletContext ); .... @Bean(initMethod="start", destroyMethod="stop") public Server initH2TCPServer(ServletContext servletContext) { log.debug( "Initializing H2 TCP Server" ); try { server = Server.createTcpServer( "-tcp", "-tcpAllowOthers", "-tcpPort", "9092" ); } catch( SQLException e ) { e.printStackTrace(); } finally { //Always return the H2Console... initH2Console( servletContext ); } return server; } public void initH2Console( ServletContext servletContext ) { log.debug( "Initializing H2 console" ); ServletRegistration.Dynamic h2ConsoleServlet = servletContext.addServlet( "H2Console", new org.h2.server.web.WebServlet() ); h2ConsoleServlet.addMapping( "/console/*" ); ); }
from https://stackoverflow.com/questions/17803718/view-content-of-embedded-h2-database-started-by-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 보안으로 사용자 업데이트시 권한을 다시로드하는 방법 (0) | 2019.01.08 |
---|---|
[SPRING] XML 구성없이 @Configuration을 사용하여 데이터베이스 초기화 (0) | 2019.01.08 |
[SPRING] 함수의 매개 변수로 전달하지 않고 Spring에서 현재 사용자 로케일을 얻는 방법? (0) | 2019.01.08 |
[SPRING] Spring에서 ref 빈에 메서드를 호출 한 결과를 삽입 할 수 있습니까? (0) | 2019.01.08 |
[SPRING] 요청 매개 변수 '_csrf'또는 헤더 'X-CSRF-TOKEN'에서 유효하지 않은 CSRF 토큰 'null' (0) | 2019.01.08 |