Closed seokjun7410 closed 11 months ago
madeBy hoding reference SpringBoot In parctice Date 23.11.24
애플리케이션에서 쿼리를 작성, DB 연결, ORM등 편리성을 제공
classDiagram
SpringDataCommons <--> SpringDataSubmodule
SpringDataSubmodule <--> DataBaseLayer
SpringDataCommons : [interface] Repository
SpringDataCommons : [interface] CurdRepository
SpringDataCommons : [interface] PaginingAndSortRepository
class SpringDataSubmodule{
스프링 데이터 JDBC , 스프링 데이터 JPA , 스프링 데이터 몽고DB
}
class DataBaseLayer{
Mysql , PostgreSql , 몽고DB
}
[application.properties] spring.sql.init.mode=always //기본값이 embedded
embedded는 인메모리 DB만 초기화가 실행된다.
[application.properties] spring.datasource.patform=mysql
[application.properties] spring.jpa.hibernate.ddl-auto=none
classpath: => src/main/resources
[application.properties] spring.sql.init.schema-locations=classpath:sql/schema/sbip_schema.sql
classDiagram
Repository <--> CurdRepository
Repository <--> PaginingAndSortingRepository
CurdRepository <--> ListCurdRepository
PaginingAndSortingRepository <--> ListPaginingAndSortingRepository
ListCurdRepository <--> JpaRepository
QueryByExampleExculator <--> JpaRepository
ListPaginingAndSortingRepository <--> JpaRepository
class CurdRepository {
}
class ListCurdRepository {
}
class PaginingAndSortingRepository {
}
class ListPaginingAndSortingRepository {
}
class QueryByExampleExculator {
}
class JpaRepository {
}
@NoRepositoryBean // 프록시 객체 생성 X -> 자동 구현체 생성 X
public interface BaseRepoisotry<T,ID> extends Repository<T,ID>{
<S extends T> S save(S entity);
Iterable<T> findAll()
}
@Repository
public interface CustomizedCourseRepository extends BaseRepository<T,ID>{}
CHAPTER 3 스프링 데이터를 사용한 데이터베이스 접근 83 3.1 스프링 데이터 소개 83 3.1.1 왜 스프링 데이터인가? 84 3.1.2 스프링 데이터 모듈 85 3.2 스프링 부트 애플리케이션 데이터베이스 연동 설정 87 3.2.1 기법: 스프링 부트 애플리케이션에서 관계형 데이터베이스 연동 설정 88 3.2.2 기법: 스프링 부트 애플리케이션 몽고DB 설정 93 3.2.3 기법: 스프링 부트 애플리케이션에서 관계형 데이터베이스 초기화 96 3.3 CrudRepository 인터페이스 이해 101 3.3.1 기법: 스프링 데이터 JPA를 사용해서 도메인 객체를 관계형 데이터베이스에서 관리 103 3.3.2 기법: 커스텀 스프링 데이터 리포지터리를 만들어서 관계형 데이터베이스에서 도메인 객체 관리 111 3.4 스프링 데이터를 사용한 데이터 조회 114 3.4.1 쿼리 메서드 정의 114 3.4.2 기법: 관계형 데이터베이스에서 스프링 데이터 JPA를 사용한 커스텀 쿼리 메서드 정의 115 3.4.3 PagingAndSortingRepository를 활용한 페이징 119 3.4.4 PagingAndSortingRepository 인터페이스로 데이터 페이징 및 정렬 119 3.4.5 @NamedQuery를 사용하는 쿼리 123 3.4.6 기법: 관계형 데이터베이스에 저장된 도메인 객체를 NamedQuery로 조회 124 3.5 @Query로 쿼리문 지정 127 3.5.1 기법: @Query 애너테이션을 사용해서 쿼리를 정의하고 관계형 데이터베이스에 저장 된 도메인 객체 조회 127 3.6 Criteria API 사용 132 3.6.1 기법: Criteria API를 사용해서 관계형 데이터베이스에 저장된 도메인 객체 관리 132 3.7 스프링 데이터 JPA와 QueryDSL 136 3.7.1 기법: 관계형 데이터베이스에 저장된 도메인 객체를 QueryDSL로 관리 136 3.7.2 기법: 프로젝션 142 3.8 도메인 객체 관계 관리 144 3.8.1 기법: 스프링 데이터 JPA를 사용해서 관계형 데이터베이스에서 다대다 관계 도메인 객 체 관리 145