////
Search
Duplicate
🚁

Chapter 3. 데이터로 작업하기

RDB와 SQL은 데이터 영속성의 최우선 선택으로 자리를 지켜왔다. 최근에는 대체 가능한 다양한 데이터베이스 종류가 늘었지만 RDB는 여전히 범용 데이터 저장소를 선택하는 최선이다.
일반적으로 RDB를 사용하는 경우, 자바 개발자들이 선택할 수 있는 몇 방법이 있는데, 그중 가장 많이 사용하는 방법이 JPA와 JDBC다.

1. JDBC를 사용해서 데이터를 읽고 쓰기

Spring의 JDBC는 JdbcTemplate 클래스에 기반을 둔다. 이는 JDBC를 사용할 때 요구되는 모든 형식적이고 상투적인 코드없이 개발자가 관계형 데이터베이스에 대한 SQL 연산을 수행할 수 있도록 해준다.

1. 퍼시스턴스를 고려한 도메인 객체 수정하기

객체를 데이터베이스에 저장하고자 할 때는 해당 객체를 고유하게 식별해 주는 필드를 하나 추가하는 것이 좋다.
즉, 도메인 클래스들이 데이터베이스에 고유한 인스턴스로 저장되려면 이를 식별하기 위해 식별자를 추가해줘야 한다.

2. JdbcTemplate 사용하기

JdbcTemplate을 사용하려면 데이터베이스에 연결을 위한 의존성을 추가해두어야 한다.

2. 스프링 데이터 JPA를 사용해서 데이터 저장하고 사용하기

스프링 데이터 프로젝트는 여러 개의 하위 프로젝트로 구성되는 다소 규모가 큰 프로젝트다.
스프링 데이터 JPA: 관계형 데이터베이스의 JPA 퍼시스턴스
스프링 데이터 MongoDB: 몽고 도큐먼트 데이터베이스의 퍼시스턴스

1. 스프링 데이터 JPA를 프로젝트에 추가하기

스프링 데이터 JPA는 JPA 스타터를 통해서 스프링 부트 어플리케이션에서 사용할 수 있다.

2. 도메인 객체에 어노테이션 추가하기

JPA 매핑 어노테이션을 도메인 객체에 추가해야 JPA의 기능을 정상적으로 사용할 수 있다.

요약

스프링의 JdbcTemplate은 JDBC 작업을 굉장히 쉽게 해준다.
데이터베이스가 생성해 주는 ID의 값을 알아야 할때는 PreparedStatementCreatorKeyHolder를 함께 사용할 수 있다.
데이터 추가를 쉽게 실행할 때는 SimpleJdbcInsert를 사용하자.
스프링 데이터 JPA는 레포지터리 인터페이스를 작하든 JPA 영속성을 쉽게 해준다.