Spring Data JDBC

seongmin·2022년 10월 30일
0

Spring

목록 보기
26/38
post-thumbnail

Spring Data JDBC 적용 순서

  1. build.gradle 에 사용할 데이터베이스를 위한 의존 라이브러리를 추가한다.
 dependencies {
	...
	...
	implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
	runtimeOnly 'com.h2database:h2'
}
  1. application.yml 파일에 사용할 데이터베이스에 대한 설정을 한다.
spring:
  h2:
    console:
      enabled: true
      path: /h2     # (1) 
  datasource:
    url: jdbc:h2:mem:test     # (2) 

(1) : H2 콘솔의 접속 URL Context path 설정
(2) : JDBC URL이 매번 랜덤하게 바뀌지 않도록 설정

  1. schema.sql 파일에 필요한 테이블 스크립트를 작성한다.

  1. application.yml 파일에서 schema.sql 파일을 읽어서 테이블을 생성할 수 있도록 초기화 설정을 추가한다.

scehma-locations : 테이블 생성 파일 경로

인메모리 DB를 사용할 경우, 애플리케이션이 실행될 때 마다 schema.sql 파일의 스크립트가 매번 실행된다.

  1. 데이터베이스의 테이블과 매핑할 엔티티(Entity) 클래스를 작성한다.

  1. 작성한 엔티티 클래스를 기반으로 데이터베이스의 작업을 처리할 Repository 인터페이스를 작성한다.

  1. 작성된 Repository 인터페이스를 서비스 클래스에서 사용할 수 있도록 DI 한다.

  1. DI 된 Repository의 메서드를 사용해서 서비스 클래스에서 데이터베이스에 CRUD 작업을 수행한다.

정리

  • 데이터 액세스 기술의 유형은 크게 SQL 중심의 기술과 객체(Object) 중심의 기술로 나눌 수 있다.

  • SQL 중심의 기술에는 mybatis, Spring JDBC 등이 있다.

  • 객체(Object) 중심의 기술에는 JPA, Spring Data JDBC 등이 있다.

  • JPA 같은 객체(Object) 중심의 기술을 ORM(Object-Relational Mapping) 기술이라고 한다.

  • 인메모리(In-memory) DB는 애플리케이션이 실행된 상태에서만 데이터를 저장하고 애플리케이션 실행이 중지되면 인메모리 DB 역시 실행이 중지되어 저장된 데이터가 사라진다.

  • Spring에서 지원하는 CrudRepository 인터페이스는 CRUD에 대한 기본적인 메서드를 정의하고 있기 때문에 별도의 CRUD 기능을 개발자가 직접 구현할 필요가 없다.

  • application.properties 또는 application.yml 파일의 설정 정보 등록을 통해 데이터베이스 설정, 데이터베이스의 초기화 설정 등의 다양한 설정을 할 수 있다.

  • application.yml 방식은 중복되는 프로퍼티의 입력을 줄여주기 때문에 application.properties 방식보다 더 선호되는 추세이다.

  • 엔티티(Entity) 클래스 이름은 데이터베이스 테이블의 이름에 매핑되고, 엔티티 클래스 각각의 멤버 변수는 데이터베이스 테이블의 컬럼에 매핑된다.

  • 엔티티 클래스의 멤버 변수에 @Id 애너테이션을 추가하면 데이터베이스 테이블의 기본키(Primary key) 컬럼과 매핑된다.

0개의 댓글