You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
스프링 DB 접근 기술
H2 데이터베이스 설치
순수 JDBC
resources/application.properties에 아래를 추가한다.구현 클래스 추가 이미지
스프링 통합 테스트
@SpringBootTest: 스프링 컨테이터와 테스트를 함께 실행한다.@Transactional: 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.스프링 JdbcTemplate
JPA
JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다.
JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환을 할 수 있다.
JPA를 사용하면 개발 생산성을 크게 높일 수 있다.
build.gradle JPA 추가
spring-boot-starter-data-jpa는spring-boot-starter-jdbc안에 포함 되서 제공하기 때문에 주석처리 하는것이 좋다.resources/application.properties에 아래것을 추가show-sq: JPA 생성하는 SQL을 출력한다.ddl-auto: JPA는 테이블을 자동으로 생성하는 기능을 제공하는데none를 사용하면 해당 기능을 끈다.create를 사용하면 엔티티 정보를 바탕으로 테이블도 직접 생성해준다.JPA 엔티티 매핑
JPA 레파지토리 추가
서비스 계층에 Transactional 추가
스프링은 해당 클래스의 메서드를 실행할 때 트랜잭션을 시작하고, 메서드가 정상 종료되면 트랜잭션을 커밋한다. 만약 런타임 예외가 발생하면 롤백한다.
JPA를 통한 모든 데이터 변경은 트랜잭션 안에서 실행해야 한다.
Config 변경
스프링 데이터 JPA
스프링 데이터 JPA 회원 리포지토리
스프링 데이터 JPA 회원 리포지토리를 사용하도록 스프링 설정 변경
SpringDataJpaMemberRepository추가 해준다.스프링 데이터 JPA 제공 클래스
스프링 데이터 JPA 제공 기능
findByName(),findByEmail()처럼 메서드 이름 만으로 조회 기능 제공Beta Was this translation helpful? Give feedback.
All reactions