Computer Engineering/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() { ... }
    
}