Java Database Connectivity
Java 표준사양(내역, 명세)
JDBC API로 JDBC드라이버 로딩 -> DB접근
JDBC 드라이버
DB 통신 담당 인터페이스, 벤더(Oracle, MS SQL, MySQL..)에 맞는 적절한 JDBC 드라이버를 구현해 제공
Connection Pool
재사용되는 Connection 위한 Connection 관리자
드라이버 로딩(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가 있다
1. 의존 라이브러리 추가
2. application.yml 설정
3. schema.sql 내 테이블값 설정
4. 엔티티 클래스 작성과 @Id적용
5. Repository extends CrudRepository 인터페이스 작성
6. 서비스클래스에 Repository DI
7. 서비스클래스 내 Repository 객체로 CRUD 실행
build.gradle내
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
runtimeOnly 'com.h2database:h2'
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는 앱 실행시 마다 스크립트 실행


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

CrudRepository를 상속하는 Repository

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