Database

[h2] spring boot 에서 h2 설정 및 사용 ( + @entity )

walwal_ 2023. 4. 4. 03:40

 

안녕하세요! 

오늘은 h2 접속에 이어 사용하는 방법을 알아보도록 하겠습니다.

 

 

 

h2는 서버 재 시작시 데이터가 사라지는 특징이 있어 학습시 주로 사용합니다.

 

 

 

 

 

 

 

사용하기에 앞서 entity 또는 domain 클래스에

h2사용을 편리하게하는 어노테이션을 간단히 살펴 보도록 하겠습니다. 

 

 

 

@Entity : 테이블을 만듦 . 해당 클래스와 동일한 클래스명이 기본.

                 @Entity(name = "변경할 테이블이름") : 설정한 이름으로 테이블이름 변경됨.

@ Id , GeneratedValue  : 멤버변수와 데이터베이스를 매핑해주며, primary key설정 등

@ Column(name="변경할 컬럼 이름") : 설정한 이름으로 컬럼명이 바뀜.

생성 및 변경된 테이블


 

 

 

 

 

SQL 파일을 만들어 insert 하는 쿼리를 입력해 h2에서 확인할 수 있도록 보겠습니다.

insert into [테이블 명] (entity클래스의 변수이름들) values (값,값,값)

 

 

 

 

 

혹시 실행중에 오류를 만났다면 아래와 같은 케이스인지 확인해보기!

 

 

오류1 : Failed to exeute SQL script statemnt #1 of URL

 

오류2 : Table "[entity클래스 명]" not found (this database is empty) : SQL statment

 

 

 

<application.properties>에서 설정을 추가하거나 변경해주기 .

 

해결1 : spring.datasource.url=[h2 console의 JDBC URL입력란에 입력할 url]

 

해결2: spring.jpa.defer-datasource-initialization=true

 

 

 

 

 

모든 설정이 끝났다면 h2 DB에 접속해서

접속이 잘 되지 않는다면 참고 : [Database] - [h2] 접속 1 ( cmd , console 접속 )

                                                  [Database] - [h2] DB 접속 ( SpringBoot )

 

select * form [테이블명] 을 입력하고 run을 눌러주세요.

sql에서 insert했던 내용이 검색됨을 확인하실 수 있습니다.