Spring MVC(데이터 액세스 계층)

Rina's·2023년 6월 15일

코드스테이츠

목록 보기
46/96

🎯JDBC기반 데이터 액세스

Java Database Connectivity
Java 표준사양(내역, 명세)

JDBC API로 JDBC드라이버 로딩 -> DB접근

JDBC 드라이버
DB 통신 담당 인터페이스, 벤더(Oracle, MS SQL, MySQL..)에 맞는 적절한 JDBC 드라이버를 구현해 제공

Connection Pool
재사용되는 Connection 위한 Connection 관리자

JDBC API 사용 과정

드라이버 로딩(DriverManager 클래스)
Connection(DB연결 세션) 생성
Statement(쿼리문) 생성
SQL Query 실행
ResultSet(데이터셋) 조회
Close(ResultSet-Statement-Connection 역순)

Spring 데이터 액세스 기술

mybatis, Spring JDBC, Spring Data JDBC, JPA, Spring Data JPA

SQL 중심 기술 : mybatis, Spring JDBC
ORM(객체 중심의 데이터 액세스 기술) : JPA
Spring Data JDBC

인메모리(In-memory) DB
휘발성 DB, 로컬 개발 환경에서 테스트 작업 환경을 위해 사용
스프링 제공 인메모리 데이터베이스는 H2, HSQL, Derby가 있다

🎯Spring Data JDBC 적용 순서

1. 의존 라이브러리 추가
2. application.yml 설정
3. schema.sql 내 테이블값 설정
4. 엔티티 클래스 작성과 @Id적용
5. Repository extends CrudRepository 인터페이스 작성
6. 서비스클래스에 Repository DI
7. 서비스클래스 내 Repository 객체로 CRUD 실행

1. 의존 라이브러리 추가

build.gradle내
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
runtimeOnly 'com.h2database:h2'

2. application.yml 설정

application을 yml로 확장자 변경 후 H2설정 추가하여 H2로 사용하자

spring:
  h2:
    console:
      enabled: true


H2 데이터베이스 연동 성공

localhost:8080/h2-console 접속,
JDBC URL에 available at 'jdbc:h2:mem:...' 를 입력해 접속
URL은 매번 랜덤하게 바뀜, 선택 경로 사용을 원할시

spring:
  h2:
    console:
      enabled: true
      path : /h2 
  datasource:
    url: jdbc:h2:mem:test
  sql:
    init:
      schema-locations: classpath*:db/h2/schema.sql
      data-location: classpath*:db/h2/data.sql
logging:
  level:
    org:
      springframework:
        jdbc:
          core: TRACE

schema.sql을 로딩하여 앱 실행시, DB에 테이블을 자동 생성
인메모리 DB는 앱 실행시 마다 스크립트 실행

3. schema.sql 설정

4. 엔티티 클래스 작성


@Id로 연결된 엔티티 클래스

5. Repository 인터페이스 작성


CrudRepository를 상속하는 Repository

6. 서비스클래스에 Repository 인터페이스 DI

7. Repository의 메서드로 CRUD 실행

포스트맨으로 post요청을 보낸 후,
localhost로 H2 DB에 접속하면 값이 저장된 것을 확인 할 수 있다

profile
갭린이 리나

0개의 댓글