[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 18강
https://inf.run/hisy 강의를 수강하고 작성하는 게시물입니다.
1. DB 적용
- H2 데이터베이스 설치
- 순수 Jdbc
- 스프링 통합 테스트
- 스프링 JdbcTemplate
- JPA
- 스프링 데이터 JPA
위의 순서로 DB를 적용해보는 방법을 익힐 것이다.
기술이 편리하게 진화해온 순서(?)라고 보면 된다.
2. H2 데이터베이스 설치
위의 사이트로 들어가서 다운을 받는다 윈도우의 경우 윈도우 인스톨러 다른 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가 다운된다) 다시 실행시켜야한다.
댓글 남기기