주노 님의 블로그

[Spirng] 7. Spring 데이터베이스 연동 - H2데이터베이스 설치 본문

공부/Spring

[Spirng] 7. Spring 데이터베이스 연동 - H2데이터베이스 설치

juno0432 2024. 7. 28. 23:09

시작하기에 앞서

아래 내용은 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근기술에서 발췌한 내용입니다.

 

 

강의자료 일부를 발췌하는건 괜찮다고 하셨다.

무료강의로 지식을 공유해주신 김영한님께 다시한번 감사의 인사를 올리겠습니다

(_ _) (유료도 샀어요!)

 

H2데이터베이스는 가볍고 테스트하기 좋은 데이터베이스로 웹 화면을 제공해준다.

 

https://www.h2database.com

 

H2 Database Engine (redirect)

H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo

www.h2database.com

위 링크를 들어가서 다운로드 한다

 

그리고 설치된 폴더에서 BIN으로 들어가면 h2.bat 파일이 있을건데

그 파일을 실행해주면 된다

 

아참 그때 실행되는 cmd는 닫으면 안된다

고거 몰라서 학교에서 실습할때 1시간 날린적 있심 ㅇㅇ..

 

 

실행하면 위와 같은 창이 뜬다

연결 버튼을 누르면 정상 실행이 되는것을 볼 수 있다

jdbc:h2:~/test로 접속하게되면

C드라이브 > 사용자 > 본인이름에 위와 같은 파일이 있는것을 확인 할 수 있다

 

하지만 위 경로는 파일을 직접 접근하기때문에 여러프로젝트를 실행할시 꼬일수 있는 문제가있다

 

jdbc:h2:tcp://localhost/~/test

 

따라서 위와 같이 변경해주자

 

그리고 입력창에

drop table if exists member CASCADE; 
create table member
(
 id   bigint generated by default as identity, 
    name varchar(255),
primary key (id) 
);

위와 같이 입력하여 테이블을 만들어주자

명령어 해석은 다음과 같다

 

테이블을 삭제한다 만약 존재한다면 멤버가 

테이블을 삭제하는데 만약 멤버가 존재한다면 casecade옵션으로 삭제된다

casecade는 부모가 삭제될때 자식도 똑같이 삭제가된다

 

테이블 생성문은

id를 bigint타입으로 설정한다 > 값을 null로 지정을할시 db가 알아서 id를 생성해준다

name은 varchar타입으로 설정하고

id는 기본키이다.

 

insert into member(name) values('spring')으로 spring이라는 네임을 추가해준다

 

 

우리는 id를 입력하지 않았지만

db에서 자동으로 id값을 채워줬다.

 

build.gradle 설정

implementation 'org.springframework.boot:spring-boot-starter-jdbc' 
runtimeOnly 'com.h2database:h2'

 

application.properties 수정

 

해당 경로에 있는 application.properties를 수정해주자

spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa

 

위 내용을 추가해주면되는데.

url은 h2왼쪽상단에 보는 링크로

username은 h2에서 등록한 본인 이름을 등록하면된다.

 

다음으론 spring에서 써먹는법을 알아보자