H2 데이터베이스를 설치하고 아래와 같이 테이블을 생성합니다.
drop table if exists member CASCADE;
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
);
DB 연동 방법
1. 순수 Jdbc
Merge pull request #16 from Lemon-soju/slave-01 · Lemon-soju/springboot-newbie-project@aa79a91
pure Jdbc
github.com
SpringConfig에서 memberRepository의 반환 값만 수정하면 데이터베이스를 사용할 때 MemoryMemberRepository에서 JdbcMemberRepository로 쉽게 변경할 수 있다. 순수 Jdbc는 현재 사용하지 않으므로 참고로 알면 좋을 듯하다. 객체 지향의 장점은 이렇게 DI(Dependency Injection)을 이용하여 Repository를 쉽게 교체할 수 있어서 마치 조립장난감처럼 원하는 부품만 넣었다 뺏다 할 수 있다는 점인 것 같다.
스프링 통합 테스트
Merge pull request #17 from Lemon-soju/slave-01 · Lemon-soju/springboot-newbie-project@81788eb
Spring Integration Test
github.com
@SpringBootTest, @Transactional Annotation을 통해 데이터베이스와 연동하여 테스트를 진행하였다.
JdbcTemplate을 이용한 Repository 개발
순수 Jdbc에 비해서 코드의 양은 줄었지만 SQL 쿼리는 직접 입력해야 한다. 아직 실무에서 많이 사용하는 방식이라고 한다.
자세한 문법들은 이후 추가로 공부할 예정
Merge pull request #18 from Lemon-soju/slave-01 · Lemon-soju/springboot-newbie-project@bc91837
Jdbc Templete
github.com
JPA
Jdbc Template와 비교하면 Primary key 기반의 쿼리는 직접 작성 안 해도 되므로 코드를 더 줄일 수 있다. 하지만 Primary key 기반 쿼리가 아닌 경우에는 직접 작성해야 한다.
Merge pull request #19 from Lemon-soju/slave-01 · Lemon-soju/springboot-newbie-project@c695154
JPA developement
github.com
스프링 데이터 JPA
리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 반복 개발해온 CRUD 기능도 스프링 데이터 JPA가 제공합니다.
Merge pull request #20 from Lemon-soju/slave-01 · Lemon-soju/springboot-newbie-project@65e5bbb
Spring Data JPA
github.com
'웹 개발 > Back End' 카테고리의 다른 글
실전! 스프링 부트와 JPA 활용1 - 프로젝트 환경설정 (0) | 2022.01.05 |
---|---|
스프링 입문 - AOP (0) | 2022.01.03 |
스프링 입문 - 웹 MVC 개발 (0) | 2022.01.02 |
스프링 입문 - 스프링 빈과 의존관계 (0) | 2022.01.02 |
스프링 입문 - 회원 관리 예제 (0) | 2022.01.01 |
댓글