Section 1. H2 DataBase
1. H2 DataBase
2. H2 DataBase 생성
- h2.sh 실행 파일 권한 부여 및 실행
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F9ccebbb8-d0b3-46da-aca3-7ebfe817e181%2Fimage.png)
- 웹 화면 (localhost 로 접근해야함)
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F44811722-a1d0-4751-8da1-d25255280d4a%2Fimage.png)
- DB 파일 생성
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F30f88b04-a16a-41b3-873b-80523b9d9255%2Fimage.png)
- DB 파일이 생성된 후에는 jdbc:h2:tcp://localhost/~/test 소켓 형식으로 접속
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fb7e8340c-c0d3-467a-8161-cab78622fab2%2Fimage.png)
3. H2 Table 생성
- bigint = Long 타입
- generated by default as identity -> null 값이 들어오면 자동으로 식별자를 생성해줌
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
);
4. H2 Table 삽입 및 조회
insert into member(name) values('spring')
select * from member
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F04cd61bb-3f6c-41e3-afd6-8095ecbd3b8b%2Fimage.png)
Section 2. JDBC
1. JDBC 환경 설정
- build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F7b105543-fb22-475d-a99b-3d3fce20fa78%2Fimage.png)
- resources/application.properties 설정 파일에 datasource 정보 기입
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F4f09a530-2841-4553-9614-99ade7be0f59%2Fimage.png)
2. JDBC Repository 생성
3. insert 기능
- values(?) 에서 ? 자리에 parameterIndex 1번째에 member.getName() 매핑
- pstmt.executeUpdate(); 실제 쿼리 수행 부분
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F4401b66f-bee7-4a38-81d0-c9cd0cbd7231%2Fimage.png)
4. select 기능
- rs = pstmt.executeQuery(); 실제 쿼리 수행 부분
- if(rs.next()) - 조회된 결과가 존재하면
- member 객체를 생성하고 setId, setName 수행 후 반환
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F7ab025c8-01bc-49f5-84f5-05637720e267%2Fimage.png)
5. Config 설정 파일 DB 구현체 변경
- Service 소스코드를 전혀 건들지 않고 단순히 설정파일에서 구현체만 변경
- DataSource 객체는 스프링이 자동으로 bean 생성
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F6a3f508b-360b-4768-8fdf-542535d162ab%2Fimage.png)
6. Spring Boot JDBC 연동 결과
- h2.db 에 저장했던 테이블과 튜플 확인 가능
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fb6852568-dca0-4681-90c9-9048a9bd3434%2Fimage.png)
Section 3. JDBC Template
1. JDBC Template
JDBC의 모든 기능을 최대한 활용할 수 있도록 유연성을 제공 (JDBC를 감싸서 기능을 제공)
- 순수 Jdbc와 동일한 환경설정
- JDBC API에서 본 반복 코드를 대부분 제거 하지만 SQL은 직접 작성
2. JDBC Repository 생성
① 리팩토링 전
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F7f5d7220-0a38-4c07-8867-2bcfb4180336%2Fimage.png)
② 리팩토링 후 (람다식 alt + enter)
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F660de13d-1136-41d5-85b2-287d9cf52d71%2Fimage.png)
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F6fdb4a96-c9fa-4adc-857c-629b519a7692%2Fimage.png)
3. insert 기능
- SimpleJdbcInsert 객체 이용
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F0a76519b-4c74-44c3-95ee-a68598ece527%2Fimage.png)
4. select 기능
- RowMapper 이용
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fae9c4520-bb5b-4642-b089-7e8d90bbb404%2Fimage.png)
5. Config 설정 파일 DB 구현체 변경
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fdbc85d6a-1571-489b-adfc-8404f3af42ac%2Fimage.png)