docker pull oscarfonts/h2
# 첫번째 port는 host에서 데이터베이스에의 접근용
# 두번째 port는 h2 데이터베이스 콘솔에 접근하여 Table 세팅 등을 위한 port
# -p hostPort:containerPort
# -v는 나의 desktop 폴더와 Container의 폴더를 마운트함
# 컨테이너 삭제 혹은 종료 시에도, 컨테이너의 database를 백업해둘 수 있음
# `-e H2_OPTIONS=-ifNotExists` 추가 시
# 데이터베이스 접근 시, 해당 데이터베이스 이름이 없을 경우, 자동 생성
docker run -d -p 1521:1521 -p 81:81 -v [C:/want/dir/path]:/opt/h2-data -e H2_OPTIONS=-ifNotExists --name=[ContainerName] oscarfonts/h2
docker run -d -p 1521:1521 -p 81:81 -v [C:/want/dir/path]:/opt/h2-data --name=[ContainerName] oscarfonts/h2
두번째 port로 설정한 host 포트로 접근
예) 웹브라우저에서 localhost:81로 접근함
사용자명, 비밀번호는 일단 건들지 않음

JDBC URL에 jdbc:h2:tcp://localhost:1521/[my_db_name]으로 설정 후,
연결을 누르면 자동으로 DB가 생성됨
로컬폴더와 마운트를 했을 시,
해당 폴더에 [my_db_name].mv.db 파일을 생성
이후 JDBC URL에 jdbc:h2:tcp://localhost:1521/[my_db_name]으로 설정하고 연결
마운트 설정을 하지 않았을 경우,
직접 Container의 /opt/h2-data/ 위치에 파일 생성
DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(ID INT PRIMARY KEY,
NAME VARCHAR(255));
INSERT INTO TEST VALUES(1, 'Hello');
INSERT INTO TEST VALUES(2, 'World');
SELECT * FROM TEST ORDER BY ID;
UPDATE TEST SET NAME='Hi' WHERE ID=1;
DELETE FROM TEST WHERE ID=2;