Spring Boot_H2 데이터베이스 설치

이세미·2023년 5월 18일
0

SpringBoot

목록 보기
17/23
post-thumbnail

이전까지 했던 것은 사실 메모리에 저장을 했다가 서버가 내려가면 데이터가 모두 사라지기 떄문에 실무에서는 모두 데이터베이스에 데이터들을 저장하고 관리한다.

그러기 위해서 필요한 H2 데이터 베이스를 설치해 볼 것이다.

H2 데이터베이스 설치

보통 실무에서는 mysql이나 oracle 같은 DB를 많이 사용한다.
H2 데이터베이스는 교육용으로 매우 좋은,
용량도 가볍고 웹 화면도 제공해주는 데이터베이스이다.

다음 링크에 들어가서 1.4.200 버전을 설치하였다.
https://www.h2database.com/html/download-archive.html

압축을 해제하고

terminal을 켜서

https://velog.velcdn.com/images/s_em_tudy/post/56a20a9b-1d9a-46f5-a28e-301043be6333/image.png

download 폴더에 있는

h2파일에 들어가서

bin에 들어가서

chmod 755 h2.sh

로 권한을 허용시켜 주었다.

./h2.sh

https://velog.velcdn.com/images/s_em_tudy/post/5a2fea48-f206-402f-869c-3e5e4c0959ec/image.png

home directory에 test.mv.db가 존재하는지 확인까지 해 준 후,

실행시켜 주었더니 몇 초 후,

https://velog.velcdn.com/images/s_em_tudy/post/71e3ee4e-6bf8-4e18-8f77-cb158308592f/image.png

위와 같은 창이 떴다.

현재 JDBC URL은 jdbc:h2:~/test 로 되어 있는데,
이렇게 파일로 접근을 하게 되면 애플리케이션과 웹 콘솔리 동시에 접근이 안 될 수가 있기 때문에

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

로 socket을 통해 접근하도록 바꾸어 주었다.

이렇게 해야 여러 군데에서 접근을 할 수가 있게 된다.

바꾸어 준 후 연결을 누르면,

https://velog.velcdn.com/images/s_em_tudy/post/6e1421e2-510d-4941-acec-a7ca9d62f98e/image.png

창이 하나 뜨는데
여기에 member table을 만들어 주고,

command + enter

을 눌러 실행해준다.

테이블 생성하기

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

실행을 하면,

https://velog.velcdn.com/images/s_em_tudy/post/545b9ad1-29c2-41d8-a5a2-1d53127e53e8/image.png

이렇게 MEMBER가 만들어진 것을 볼 수 있다.

이후부터는 select * from member;로 조회를 할 수가 있게 되는데,

그냥 아무것도 없는 상태에서 MEMBER를 누르면 select * from member가 저절로 뜬다.

실행을 해보면,

https://velog.velcdn.com/images/s_em_tudy/post/8cf635b4-cbdf-4ea6-b6d1-283846c2471d/image.png

위와 같이 만들어져 있는 것을 볼 수가 있다.

sql문을 잠깐 살펴보면,

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

member 클래스에서 만들어놨던 id가 있고, (type이 자바에서는 long이고 db에서는 bigint라고 한다)
그 다음에 나오는 generated by default as identity는 값을 세팅하지 않고 insert하면, db가 자동으로 id 값을 채워준다는 뜻이다.

name은 varchar(255)로 그냥 만들어 놓았고,

pk는 id로 잡아놓았다.

이제 insert를 해보겠다.

insert into member(name) values('spring')

을 실행하고,

select * from member
를 하면,

https://velog.velcdn.com/images/s_em_tudy/post/b5035ef4-81ae-4e60-bcfb-5e9daced5d58/image.png

이렇게 id 1번이 자동으로 들어가 있는 것을 볼 수 있다.

insert into member(name) values('spring2')

로 id를 하나 더 만들어 보면,

(다음은 똑같이 실행)

https://velog.velcdn.com/images/s_em_tudy/post/1d6552fc-b388-42ee-a6de-12895c91a170/image.png

이렇게 id 2번까지 들어가 있는 것을 볼 수 있다.

MemoryMemberRepository의 코드와 같은 원리이다.

테이블 관리하기

테이블 관리를 위해 프로젝트 루트에 sql/ddl.sql 파일을 생성하였다.

https://velog.velcdn.com/images/s_em_tudy/post/504beab3-4d71-42ed-a15c-e6d70b320a6b/image.png

0개의 댓글