반응형

H2 데이터베이스 설치

H2데이터 베이스는 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면을 제공한다.

 

 

Archive Downloads

 

www.h2database.com

해당 버전을 설치하고,
압축을 푼 뒤, 생성된 h2파일의 bin파일 위치로 터미널cd하자.

h2.sh 라는 이름의 실행파일이 있다.

Mac기준으로, 우선, 해당 파일을 실행하는 권한을 줘야한다.

chmod 755 h2.sh

그다음, 실행을 해보자. (터미널 현재 위치가, bin 일때 기준)

./h2.sh

 

만약에 데이터베이스가 정상적으로 생성되지 않으면, 아래 절차를 시행해보자.

 

자 다시 돌와와서.

실행이 완료 되었다.

 

최초에는 데이터베이스 파일 이라는 것을 만들어야 한다.
그래서 어떻게 해야하냐면,

경로를 "jdbc:h2:~/test"로 해주는데, 뭘 의미하냐면,
내 home에 있는 test라는 파일을 말한다.

이렇게 설정한 후, 연결을 한다.

그러면 이렇게  만들어진다.

그리고 이 버튼으로 나갈 수 있는데,
나가서 확인해야 할 것이 있다.

추가 터미널 창에서,

ll

ls -arlth

이 명령어를 이용해서,

home에 "test.mv.db" 파일이 있는 있는지 확인해야 한다. 있으면 OK

그리고, 이시점 이후부터는 어떻게 h2에 접속을 해야하냐면,

이렇게 파일로 접근하게 되면,
웹콘솔과 애플리케이션이 동시접근이 안될 수도 있다. 오류가 날 수도 있다.

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

이렇게 하면, 파일에 직접 접근하는 것이 아니라,
소켓을 통해서 접근하게 된다.

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

이렇게 연결 해주면 된다.

 

만약에 혹시라도 DB에 문제가 있다면 연결을 나와서,

rm test.mv.db

터미널에  이 명령어를 이용해서 test.mv.db 파일을 지우고

서버를 완전히 내린 후, 처음부터 다시 진행해보길 바란다.

 


 

테이블을 만들어 보자. 코드는 강의록의 코드를 복사했다.

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

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

우리가 만들었던 member 의 table을 만들 것이다.

실행 버튼을 눌러서 만들었다.

id   bigint generated by default as identity,

id는 java에서는 Long인데, DB에서는 bigint 라는 타입이다.
그리고, generated by default as identiry 가 있는데, 이게 뭐냐면,
만약에 id 값을 세팅하지 않고 null값을 insert하면, db가 들어왔을 때, 자동으로 id값을 채워준다.

name varchar(255),


그리고 name은 varchar 타입으로 만들어 놓았다.

primary key는 id로 잡았다.

정말 단순하게 작성한 것이다.

 

그리고,

SELECT * FROM MEMBER

를 이용하여 조회할 수 있다.

현재는 저장된 데이터가 없다.

 

insert를 해보자.

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

실행을 누르면, insert에 의해 갱신이 1개 되었다고 결괄르 받을 수 있다.

확인해보자.

이렇게 id는 1이 자동으로 들어갔고, NAME에는 spring이  들어간 것을 확인할 수 있다.

1개 더 insert해보자. name에 'spring2'를 넣어보겠다.

확인해보자.

이것도 id를 생략하고 name만 'spring2'을 넣어주었는데,
ID가 자동으로 2, 그리고 NAME은 spring2 가 잘 저장되었다.

사실, MemberRepository의 구현체인 MemoryMemberRepository도 sequence라는 것을 통해 db에 save()했을 때, 자동으로 증가되도록 만들었었다. 이것과 같은 원리로 맞춘 것이다.

이런식으로 Primary Key 에 대한 생성을 "DB야 너가 알아서 해줘!!" 라고 넘긴 것이다.

 


 

DDL 관리

 

방금 사용한 SQL DDL을 관리를 하면 좋은데,
이런식으로 sql이라는 이름으로 hello-spring 하위폴더를 만들어서
sql폴더에 ddl.sql이라는 이름으로 파일을 생성한다.

이런식으로 만들어 두고, 좀전에 DB table을 생성한 DDL 같은 것을 저장해서 관리 한다.

이렇게 해두면,
git같은 것을 이용하여 버전관리를 하면,
변경내역이 함께 관리가 되기 때문에 이점을 얻을 수 있다.

 

오늘은 DB에 웹 콘솔로 들어갔는데,

다음시간에는, 우리가 만들었던 Application에서 DB로 접근해서 데이터를 넣고 빼는 등의 작업을 해볼 것이다.

반응형