티스토리 뷰

Spring

데이터 접근 1. JdbcTemplate

Js0l 2024. 7. 10. 16:34

1. JdbcTemplate

  • 데이터베이스에 접속할 수 있도록 도와주는 자바 API
  • Jdbc API에서 반복되는 코드를 제거해 사용할 수 있도록 제공하는 라이브러리

 

2. DB 설정

//build.gradle
dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-jdbc'
  runtimeOnly 'com.h2database:h2'
}

//application.properties
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:test

 

3. 관리할 객체 생성

package first;

public class Member {
    private long id;
    private String fName;
    private String lName;

    public Member(long id, String fName, String lName) {
        this.id = id;
        this.fName = fName;
        this.lName = lName;
    }

    public long getId() {
        return id;
    }

    public String getFName() {
        return fName;
    }

    public String getLName() {
        return lName;
    }
}

 

4. DB 초기화

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

 

5. JdbcRepository 

  • Jdbc Template를 통해 쿼리를 실행해 CRUD 작업을 수행하고, RowMapper를 사용해 DB결과를 도메인 객체로 변환한다.
@Repository
public class JdbcMemberRepository implements MemberRepository {

    private final JdbcTemplate jdbcTemplate;

    public JdbcMemberRepository(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }
    
    @Override
    public void save(Member member) { ... }
    
    @Override
    public List<Member> findAll() { ... }
    
    @Override
    public Member findById(Long id) { ... }
    
    @Override
    public void update(Member member) { ... }
    
    @Override
    public void delete(Long id) { ... }
    
    private RowMapper<Member> memberRowMapper() { ... }
    
}

'Spring' 카테고리의 다른 글

프로젝트에서 사용한 주요 JPA : Entity, Mapping, 논리적 삭제  (0) 2024.09.30
예외 처리와 로깅 설정  (0) 2024.09.30
API 예외처리  (0) 2024.07.01
Spring MVC  (0) 2024.06.28
REST API  (0) 2024.06.28
공지사항
최근에 올라온 글
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함