1. H2 데이터베이스 설치
개발이나 테스트 용도로 가볍고 편리한 DB로 웹 화면도 제공한다.
링크 : https://www.h2database.com/
H2 Database Engine (redirect)
H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo
www.h2database.com
1) 다운로드 및 설치시, 스프링 부트 버전에 맞춘다.
스프링 부트 2.x : 1.4.200 버전
스프링 부트 3.x : 2.1.214 버전 이상
스프링 부트 4.0.3 이므로, 가장 최신 버전인 2.2.232 버전 설치
다운로드 링크 : https://www.h2database.com/html/download-archive.html
Archive Downloads
www.h2database.com
2) 파일 권한
chmod 755 h2.sh (윈도우 사용자는 X)
3) 실행
./h2.sh (윈도우 사용자는 h2.bat)
4) 데이터베이스 파일 생성 방법
h2.sh 또는 h2.bat 파일을 실행하면, 브라우저에 창이 뜬다.
여기서 오류 발생
- CMD
The Web Console server could not be started. Possible cause: another server is already running at http://IP:8082
Root cause: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: bind" [90061-232]
Exception in thread "main" org.h2.jdbc.JdbcSQLNonTransientConnectionException: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: bind" [90061-232]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:690)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
at org.h2.message.DbException.get(DbException.java:212)
at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:206)
at org.h2.util.NetUtils.createServerSocket(NetUtils.java:172)
at org.h2.server.web.WebServer.start(WebServer.java:412)
at org.h2.tools.Server.start(Server.java:551)
at org.h2.tools.Console.runTool(Console.java:216)
at org.h2.tools.Console.main(Console.java:72)
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:555)
at java.base/sun.nio.ch.Net.bind(Net.java:544)
at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:648)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:388)
at java.base/java.net.ServerSocket.<init>(ServerSocket.java:274)
at java.base/java.net.ServerSocket.<init>(ServerSocket.java:167)
at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:202)
... 5 more
8082 포트가 이미 사용중이라고 나온다. 따라서 확인 후 종료시킨다.
- CMD
C:\Users\admin>netstat -ano | findstr :8082
TCP 0.0.0.0:8082 0.0.0.0:0 LISTENING 18876
C:\Program Files\h2\bin> tasklist | findstr 18876
WediskLocal.exe 18876 Console 2 17,508 K
C:\Users\admin>taskkill /pid 18876 /f
성공: 프로세스(PID 18876)가 종료되었습니다.
다시 h2.bat 파일 실행한다. 브라우저 창에서 실행된 주소에 IP 부분을 localhost로 고친다. "http://localhost:8082/test.do?jsessionid=세션아이디"로 접속한다.
드라이버 클래스: org.h2.Driver
JDBC URL: jdbc:h2:~/test
사용자명: sa
비밀번호: (비우기)
"연결" 버튼 클릭
브라우저에 H2 콘솔 화면으로 이동되고, 홈 디렉토리에 test.mv.db 파일이 생성된 것을 확인할 수 있다.
H2 웹 콘솔 JDBC URL이 jdbc:h2:~/test로 설정하여 파일로 접근하면 애플리케이션과 동시 접속시 충돌이 일어날 수 있기 때문에, 이후부터 H2 콘솔 접근시, JDBC URL을 jdbc:h2:tcp://localhost/~/test 로 설정하여 접근한다.
이렇게 DB 서버를 통해 접근하도록 하면 여러 곳에서 접근할 수 있다.
만약 문제가 생기면 test.mv.db 파일을 지우고 H2 실행파일을 다시 시작한다.
설치 참고 : https://steady-eschoi.tistory.com/54#google_vignette
[JAVA-jdbc] Window H2 Database 설치/서버 실행
더보기 사담) 오랜만에 블로그에 방문하니 방문자수가 200명이 넘었다. 사실, 그동안 어떤 방향으로 진로를 잡아야 할지 방황하고 있었는데, 아마 블로그에도 그러한 흔적이 조금은 드러나 있는
steady-eschoi.tistory.com
2. 테이블 생성하기
H2 데이터베이스에 접근해서 member 테이블 생성
- SQL
drop table if exists member CASCADE;
create table member (
id bigint generated by default as identity
, name varchar(255)
, primary key (id)
);
SELECT * FROM member;
문법 설명)
#1 generated by default as identity
id 에 값을 세팅하지 않고 INSERT 시, DB가 자동으로 id 값을 채워준다.
테이블 관리를 위해 프로젝트 루트에 sql/ddl.sql 파일을 생성하여 사용했던 DDL 문들을 기입하여 관리한다.
3. 데이터 넣기
테이블을 생성했으니 데이터를 INSERT 한다.
- SQL
INSERT INTO member (name) VALUES ('spring');
INSERT INTO member (name) VALUES ('spring2');

id 넣지 않아도 DB가 넣어준다.
참고링크 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8?cid=325630
[지금 무료]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술| 김영한 - 인프런 강의
현재 평점 5.0점 수강생 120,696명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 예제를 만들면서 자연스럽게 스
www.inflearn.com
'강의 실습 > 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 카테고리의 다른 글
| 스프링 통합 테스트 (0) | 2026.03.13 |
|---|---|
| 순수 JDBC (1) | 2026.03.12 |
| 회원 웹 기능 - 조회 (0) | 2026.03.10 |
| 회원 웹 기능 - 등록 (0) | 2026.03.09 |
| 회원 웹 기능 - 홈 화면 추가 (0) | 2026.03.08 |
댓글