💡 이 글은 골든래빗 《스프링 부트 3 백엔드 개발자 되기 - 자바 편》의 05장 써머리입니다.
DBMS(Database Management System): DB를 관리하기 위한 소프트웨어, 관리 특징에 따라 관계형(가장 많이 사용), 객체-관계형, 도큐먼트형, 비관계형 등으로 분류됨. 여러 사람이 동시 접근할 수 있어야 함
ORM(Object-Relational Mapping): 자바의 객체와 DB를 연결하는 프로그래밍 기법. 자바 언어로만 DB를 다룰 수 있게 함
JPA(Java Persistence API): 자바에서 관계형 데이터베이스를 사용하는 방법을 정의한 인터페이스
하이버네이트(Hibernate): 자바용 ORM 프레임워크이자 JPA의 구현체, 내부적으로는 JDBC API 사용
java.sql
, javax.sql
패키지로 구성되어 있음. 이를 쓰기 위해서는 사용할 DB에 맞는 JDBC 드라이버가 필요함엔티티(Entity): 데이터베이스의 테이블과 매핑되는 객체
영속성 컨텍스트: 엔티티를 관리하는 가상의 공간(컨테이너), 엔티티 매니저는 엔티티를 영속성 컨텍스트에 저장하여 관리함, 다음 4가지 특징이 있음
스프링 데이터 JPA: 스프링 데이터의 공통적인 기능에 JPA의 유용한 기능이 추가된 기술, 엔티티 매니저를 선언하지 않고 JpaRepository 인터페이스에 선언된 메서드로 엔티티를 다룰 수 있음
package me.allchan.springbootdeveloper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class MemberService {
@Autowired
MemberRepository memberRepository;
public void test() {
// 생성
memberRepository.save(new Member(1L, "A"));
// 조회
Optional<Member> member = memberRepository.findById(1L);
List<Member> allMembers = memberRepository.findAll();
// 삭제
memberRepository.deleteById(1L);
}
}
package me.allchan.springbootdeveloper;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {
}