[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 18강


https://inf.run/hisy 강의를 수강하고 작성하는 게시물입니다.


1. DB 적용

  • H2 데이터베이스 설치
  • 순수 Jdbc
  • 스프링 통합 테스트
  • 스프링 JdbcTemplate
  • JPA
  • 스프링 데이터 JPA

위의 순서로 DB를 적용해보는 방법을 익힐 것이다.

기술이 편리하게 진화해온 순서(?)라고 보면 된다.

2. H2 데이터베이스 설치

https://www.h2database.com

위의 사이트로 들어가서 다운을 받는다 윈도우의 경우 윈도우 인스톨러 다른 os의 경우 올플랫폼을 받으면 된다.

(필자는 맥북을 사용하므로 올 플랫폼을 다운받았다.)

다 다운을 받은 후 압축을 풀어 bin파일로 들어간다.

mac의 경우 권한을 줘야한다.

chmod 755 h2.sh

터미널로 bin파일 위치로 들어가 위의 명령어를 통해 권한을 부여한다.

권한 부여 후 실행시키면 자동으로 기본브라우저에서 페이지가 하나 뜰 것이다.

만약 페이지가 잘못떴다면

ip주소만 localhost로 변경해주면 된다.(:8082 부터는 수정하면 안된다.)

3. DB파일 생성

최초에는 DB파일을 만들어야 한다.

‘JDBC URL’ 칸을 수정하여 파일 위치를 설정한다.

이후부터는 다시 접속하려면

jdbc:h2:tcp://localhost/’파일경로’

다음과 같이 입력하여 실행한다.

이렇게 하면 소켓을 통해 파일에 접근하므로 충돌이 안일어난다.

만약 접속 문제가 일어난다면 완전히 서버를 내린 후 DB 파일을 지우고 완전히 다시 만들어 처음부터 진행한다.

4. table 만들기

처음 접속 화면에서 다음과 같이 입력한다.

drop table if exists member CASCADE;
create table member
(
         id   bigint generated by default as identity,
         name varchar(255),
         primary key (id)
);

(drop table 행은 지워도 된다)

입력하고 실행버튼을 누르면 왼쪽창의 목록에 MEMBER라는 테이블이 생성된것을 볼 수 있다.

member 에서 id 가 있었는데 java에서는 long인데 DB에서는 bigint타입이다.

generated by default id 값을 세팅하지 않고 입력하면 자동으로 채워진다.

pk는 id로 입력한 것이다.

slelct * from member;

다 지우고 위의 명령어를 입력하고 실행을 누르면 멤버 목록을 볼 수 있다.

혹은 완전히 다 지운상태에서 왼쪽창의 MEMBER를 누르면 자동으로 위 명령어가 입력된다. (연속으로 누르면 member만 입력된다.)

5. DB에 데이터 넣어보기

insert into member(name) values('spring');

을 실행시키면 자동으로 데이터가 들어간다.

id를 생략하고 넣은 것으로 아이디가 자동으로 생성이 된다.

값을 여러개 넣고 db를 확인해보면 id가 차례대로 들어오는 것을 알 수 있다.

6. sql 소스 관리

보통 sql을 관리하기 편하게 hello-spring 바로 아래(src와 같은 디렉토리 레벨에서) sql 디렉토리를 만들어 관리하면 편하다.

drop table if exists member CASCADE;
create table member
(
         id   bigint generated by default as identity,
         name varchar(255),
         primary key (id)
);

위 코드를 ddl.sql에 저장했다. (소스 버전과 같이 관리가 된다.)

터미널의 실행을 끄면 연결이 해제되므로(DB가 다운된다) 다시 실행시켜야한다.

댓글 남기기