Spring Boot + IntelliJ + Embedded Database = 두통
일부 문서(Spring, Spring Boot, H2, HSQLDB, Derby, IntelliJ)에 포함된 핵심 개념을 놓쳤거나 너무 오랫동안 보고 있었습니다.
스프링 부츠 프로젝트가 진행 중입니다.처음에 H2 DB를 사용하고 초기화를 시도했지만 IntelliJ에서 접속을 시도했지만 첫째 아이를 포기하지 않고서는 DB를 쉽게 참조할 수 없다는 것을 깨달았습니다(IntelliJ 데이터베이스 클라이언트를 사용하여 H2 데이터베이스에 접속).
그래서 DerbyDB로 옮겼어요.마찬가지로 dbroot 폴더는 내 앱에서 생성되고 IntelliJ에서 연결되지만 앱을 시작할 때부터 생성된 테이블은 찾아볼 수 없습니다.
SQLite를 사용해 보았지만 SQLite 지원은 그다지 좋지 않고 특정 업데이트 기능을 사용할 수 없었지만 IntelliJ 브라우저에서는 테이블을 찾을 수 있었습니다.
사용, 검색 및 재생이 용이한 단일 파일 임베디드 DB를 원합니다.제안해 주실 수 있나요?
응용 프로그램을 실행하면 스키마가 내보내집니다.
2015-07-19 09:37:45.836 INFO 98608 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000227: Running hbm2ddl schema export
Hibernate: drop table user_roles if exists
Hibernate: drop table users if exists
Hibernate: create table user_roles (id bigint generated by default as identity, role_name varchar(255), version bigint, user_id bigint, primary key (id))
Hibernate: create table users (id bigint generated by default as identity, email varchar(255), password varchar(255), username varchar(255), version bigint, primary key (id))
Hibernate: alter table user_roles add constraint FK_g1uebn6mqk9qiaw45vnacmyo2 foreign key (user_id) references users
2015-07-19 09:37:45.849 INFO 98608 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000230: Schema export complete
IntelliJ에서는 아무것도 없습니다(heenee의 제안에 따라 jdbc:h2:./test;AUTO_SERVER=TRUE 리모트소스 사용).

질문 내용이 불분명하기 때문에 마감해야 할 투표가 있습니다.
H2, HSQLDB 또는 Derby 데이터베이스를 사용하여 애플리케이션을 개발하고 IntelliJ로 연결하는 방법은 무엇입니까?
H2 자동혼합모드면 충분합니다.사용하다jdbc:h2:~/mydbInHomeDir;AUTO_SERVER=TRUE당신의 것으로서spring.datasource.urlIntelliJ에서는 리모트 H2 데이터 소스를 만들고 동일한 JDBC URL을 사용합니다.IntelliJ Database 창에서 Synchronize 버튼을 명시적으로 눌러 데이터베이스 테이블을 표시해야 할 수 있습니다.
위에 언급한 것에 Heenee를 추가합니다.AUTO_SERVER를 지정하지 않으면 H2 인스턴스에 대한 연결은 1개만 허용됩니다.
spring-data-jpa와 함께 spring-boot를 사용하고 있습니다.각 테이블을 나타내는 엔티티에 대해 @Entity가 선언되어 있는지 확인합니다.
다음은 application.yml / application.properties 입니다.
spring.datasource.url:
jdbc:h2:file:/Users/blah[![enter image description here][1]][1]/db/vlad4;AUTO_SERVER=TRUE
spring.datasource.username: sa
spring.datasource.password:
spring:
jpa:
hibernate:
ddl-auto: create #will create schema based on entities
show-sql: true
응용 프로그램을 시작하고 데이터를 가져옵니다.클래스 패스 ex: /src/main/resources/import에 import.sql이 있는 경우 스프링 부트에서 데이터가 자동으로 Import됩니다.sql
IntelliJ를 다음과 같이 설정
IntelliJ 를 사용하지 않는 경우는, 서버/클라이언트 콤보 @ http://www.h2database.com/html/download.html 를 다운로드해, 다음의 방법으로 브라우저 베이스 클라이언트를 기동합니다.
h2/bin: java -cp h2*.jar org.h2.tools.Server
연결 문자열을 지정하여 삽입형 데이터베이스에 연결합니다.
저도 비슷한 문제가 있었어요.디폴트(채무불이행)에 의한 것입니다.create-dropddl strategy of the hibernate.응용 프로그램 종료 후 휴지 상태가 되면 세션 종료 시 스키마가 파괴되므로 IntelliJ는 아무것도 표시하지 않습니다.을 ddl로 합니다.create시작 시 합니다.
다음으로 설정 예를 나타냅니다.
application.yml
spring:
datasource.url: jdbc:h2:./db/testDb
jpa.hibernate.ddl-auto: create
IntelliJ 데이터베이스 속성
결과
이 기사에 기재되어 있는 순서에 따라 주세요.https://techdev.io/en/developer-blog/querying-the-embedded-h2-database-of-a-spring-boot-application
인텔리J 데이터베이스 클라이언트를 사용하여 접속할 수 있도록 TCP 서버를 통해 H2 인메모리 데이터베이스를 갖춘 Spring Boot 어플리케이션을 얻는 데 도움이 될 것으로 생각합니다.
콘솔과 TCP를 통해 메모리 내 DB를 표시하는 예를 사용하여 스크린샷에 따라 H2 콘솔과 IntelliJ 클라이언트를 사용하여 연결할 수 있었습니다.
https://stackoverflow.com/a/52949164/2930427
- IntelliJ - IntelliJ - 를 사용하여 합니다.jdbc:h2:tcp://localhost:9092/mem:default 
»application.yml
spring:
application:
name: example-service
r2dbc:
url: r2dbc:pool:h2:mem:///default?options=DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
username: testuser
password: testpass
pool:
initial-size: 100
max-size: 500
max-idle-time: 30m
validation-query: SELECT 1
언급URL : https://stackoverflow.com/questions/31498682/spring-boot-intellij-embedded-database-headache
'programing' 카테고리의 다른 글
| Redx 동기식 또는 비동기식으로 store.dispatch를 실행한다. (0) | 2023.03.06 |
|---|---|
| 허용되지 않는 MIME 유형("text/html")으로 인해 차단됨: Tomcat 9.0.30에 배포된 Angular 8이 자산을 처리하지 못함 (0) | 2023.03.06 |
| 커서/케어 위치를 설정하는 가장 좋은 방법은 무엇입니까? (0) | 2023.03.06 |
| REST API에 연결하기 위한 Wordpress 플러그인? (0) | 2023.03.06 |
| 스프링 부츠를 사용하지 않는 스프링 튜토리얼은 어디에 있습니까? (0) | 2023.03.06 |



