Spring DB - 1

Codren·2021년 9월 11일
0

Section 1. H2 DataBase

1. H2 DataBase




2. H2 DataBase 생성

  • h2.sh 실행 파일 권한 부여 및 실행

  • 웹 화면 (localhost 로 접근해야함)

  • DB 파일 생성

  • DB 파일이 생성된 후에는 jdbc:h2:tcp://localhost/~/test 소켓 형식으로 접속




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




Section 2. JDBC

1. JDBC 환경 설정

  • build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가
  • resources/application.properties 설정 파일에 datasource 정보 기입




2. JDBC Repository 생성

  • JdbcMemberRepository.java 파일 (강의 내용 코드이므로 비공개)
  • DB Connection 을 동기화 하기 위해서 DataSourceUtils 의 getConnection 이용




3. insert 기능

  • values(?) 에서 ? 자리에 parameterIndex 1번째에 member.getName() 매핑
  • pstmt.executeUpdate(); 실제 쿼리 수행 부분




4. select 기능

  • rs = pstmt.executeQuery(); 실제 쿼리 수행 부분
  • if(rs.next()) - 조회된 결과가 존재하면
  • member 객체를 생성하고 setId, setName 수행 후 반환




5. Config 설정 파일 DB 구현체 변경

  • Service 소스코드를 전혀 건들지 않고 단순히 설정파일에서 구현체만 변경
  • DataSource 객체는 스프링이 자동으로 bean 생성




6. Spring Boot JDBC 연동 결과

  • h2.db 에 저장했던 테이블과 튜플 확인 가능



Section 3. JDBC Template

1. JDBC Template

JDBC의 모든 기능을 최대한 활용할 수 있도록 유연성을 제공 (JDBC를 감싸서 기능을 제공)

  • 순수 Jdbc와 동일한 환경설정
  • JDBC API에서 본 반복 코드를 대부분 제거 하지만 SQL은 직접 작성




2. JDBC Repository 생성

    ① 리팩토링 전

    ② 리팩토링 후 (람다식 alt + enter)




3. insert 기능

  • SimpleJdbcInsert 객체 이용




4. select 기능

  • RowMapper 이용




5. Config 설정 파일 DB 구현체 변경

0개의 댓글