40 lines
2.0 KiB
Markdown
40 lines
2.0 KiB
Markdown
# 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 데이터베이스 테이블 생성하기
|
|
|
|
테이블 관리를 위해 프로젝트 루트에 `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값 넣어줘`와 같다.
|
|
|
|
--- |