Spring boot기반 Web Application 개발[17] - H2 데이터베이스 설치
지금까지 회원 등록, 관리를 위한 기본적인 MVC
로직을 구현했다. 이제 데이터베이스를 연동해 데이터를 관리해보자. 이번 포스팅에서는 데이터베이스를 설치하고, 간단한 실습을 진행한다.
데이터베이스 - H2
다운로드
Web 애플리케이션을 구축해봤다면, oracle
, MongoDB
, Mysql
등의 데이터베이스가 익숙할 것이다. 이번 프로젝트에서는 H2 데이터베이스로 저장소를 구축한다. 사실 이번 인프런 강의를 수강하며 H2 데이터베이스를 처음 알게되었다. 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면을 제공하기 때문에 이번 실습에 적용한다고 한다. 간단하게 설치를 진행해보자.
우선, https://www.h2database.com/html/main.html
url에 접속해보자.
Windows Installer
, All Platforms
둘 중에 아무거나 선택해도 무관하다. 간단한 Windows Installer
로 설치를 진행해보자.
설치하고, 실습하기
데이터 베이스 실행
설치는 간단하게 다운로드 받은 파일을 실행하면된다. 설치 완료 후 H2 Console
을 실행하자. 파일 위치를 찾기 힘들다면 윈도우 검색으로 쉽게 찾을 수 있다.
[참고]
command
에서는 chmod 755 h2.sh
권한을 설정하고, ./h2.sh
명령어로 실행할 수 있다.
(chmod
: 권한 변경, 755
: user 7 / group 5 / others 5/ , read
write
execute
권한)
데이터베이스 파일 생성
최초로 접속할 때는 JDBC URL 란에 jdbc:h2:~/test
을 입력하고 연결하자.
정상적으로 접속된다.
이후에는 소켓 접속 방식인 jdbc:h2:tcp://localhost/~/test
로 접속한다. JDBC URL을 변경하고 접속하는 이유는 다중 접속 시에 예기치 못한 충돌을 막기 위함이다. 따라서, 이제 부터 항상 소켓으로 DB
에 접근하자.
테이블 생성, Insert
이제 테이블을 생성해보고, 직접 데이터를 넣어보자. 아래 코드를 커맨드라인에 입력하고, 실행해보자.
drop table if exists member CASCADE;
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
);
- 이미 테이블이 존재한다면, 삭제하고 생성한다.
- id 값은
primary key
값이고, 시퀀스적으로 증가하게 된다.HashMap
으로 저장소를 구현했을 때와 동일하다.
파일명 : MemoryMemberRepository.java
위치 : \hello.hellospring\controller\MemoryMemberRepository.java
private static Map<Long,Member> store= new HashMap<>();
private static long sequence =0L;
@Override
public Member save(Member member) {
member.setId(++sequence);
store.put(member.getId(),member);
return member;
}
이제, 테이블이 생성되었으면, 데이터를 insert
해보자.
insert into member(name) values('spring1')
Insert into member(name) values('spring2')
그리고 데이터를 조회해보자.
select * from member
정상적으로 처리된 것을 확인할 수 있다!
순수 JDBC
를 이용해 데이터베이스를 연동하는 작업은 10~20년전에나 활발하게 사용하던 방식이라고한다. 우선, 다음 포스팅에서 JDBC
로 데이터베이스와 스프링부트를 연동하는 작업을 진행해보자. 이후에 JdbcTemplate
, JPA
방식으로 연동해보며, 차이점을 파악해 볼 예정이다.
이 포스팅은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트 강의
를 토대로 작성되었습니다.
Leave a comment