# H2 데이터베이스 설치 - 실무에서는 데이터베이스에 데이터를 저장하고 관리한다. - `H2 데이터베이스`는 교육용으로 굉장히 좋다. 용량도 작고 가볍고 웹으로 어드민 화면도 제공해준다. --- ## H2 데이터베이스 - [H2 데이터베이스](https://www.h2database.com) 압축파일 다운로드 및 설치, h2 데이터베이스 버전은 스프링 부트 버전에 맞춘다. - 실행파일을 실행(Mac의 경우 권한추가 필요)하면 `H2 콘솔` 창이 뜬다. - 권한 주기(Mac): chmod 755 h2.sh - 실행(Mac): ./h2.sh - 이때 포트번호 앞의 ip부분을 `localhost`로 변경하여 접근한다. - 가장 먼저 데이터베이스 파일을 만들어야 한다. ### 데이터베이스 파일 생성 방법 - `JDBC URL`에 `jdbc:h2:~/test` (최초 한번) 입력후 연결. - `~/test.mv.db` 파일 생성되었는지 확인(여기서 `~`은 C드라이브의 사용자 폴더(`home`)를 말함) - 이후부터는 `jdbc:h2:tcp://localhost/~/test` 이렇게 접속한다(파일로 접근하면 애플리케이션이랑 웹 콘솔이랑 동시에 접근이 안되거나 오류가 날 수 있기 때문이다). ![H2 데이터베이스가 정상 생성되지 않을 때](https://user-images.githubusercontent.com/68052095/102915621-72c9b580-44c5-11eb-8daa-923bc58f4308.PNG) --- ## H2 데이터베이스 테이블 생성하기 테이블 관리를 위해 프로젝트 루트에 `sql/ddl.sq` 파일을 생성하여 정리한다. ``` drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name varchar(255), primary key (id) ); ``` - 자바의 `Long` 타입은 `DB`에서는 `bigint` 타입으로 선언한다. - `generated by default as identity`를 선언하면 만약 `null`값, 즉 해당 컬럼에 값을 셋팅하지 않았다면 데이터가 들어왔을 때 `DB`가 자동으로 값을 채워준다. - 쉽게 말하면 `DB야 너가 알아서 PK값 넣어줘`와 같다. ---