2. 6.(화) 모각코

2024. 2. 8. 01:54·모각코/어쩌다보니 박준태가 조장이조
728x90

스프링은 데이터베이스와의 연동을 쉽게 도와주는 여러 가지 도구와 방식을 제공합니다.
JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있게 도와주는 API입니다.
JdbcTemplate은 이러한 JDBC를 좀 더 편리하게 사용할 수 있도록 스프링에서 제공하는 템플릿 클래스입니다.
이를 사용하면 데이터베이스 연동 코드를 좀 더 간결하고 안정적으로 작성할 수 있습니다.
JdbcTemplate은 스프링 JDBC의 핵심이며 다른 고수준의 기능들도 결국 내부에서는 이 JdbcTemplate을 활용합니다.

 

JdbcTemplate은 핵심 JDBC 작업 흐름(예: 문장 생성 및 실행)의 기본적인 업무를 수행하며, 애플리케이션 코드는 SQL을 제공하고 결과를 추출하는 역할을 담당합니다.
JdbcTemplate 클래스는 다음과 같은 기능을 제공합니다.

  • SQL 쿼리 실행
  • statements 및 저장된 procedure all 업데이트
  • ResultSet 인스턴스를 반복하고 반환된 매개 변수 값의 추출을 수행
  • JDBC 예외를 캡처하여 org.springframework.dao 패키지에 정의된 일반적이고 더 유용한 예외 계층으로 변환

 

JdbcTemplate의 queryForObject 메서드를 이용하여 단일 객체를 조회할 수 있습니다.

 

 

queryForObject의 두 번째 매개변수에 RowMapper를 전달하여 조회 결과를 매핑할 수 있습니다.

Customer customer = jdbcTemplate.queryForObject(
        "select id, first_name, last_name from customers where id = ?",
        (resultSet, rowNum) -> {
            Customer customer = new Customer(
                    resultSet.getLong("id"),
                    resultSet.getString("first_name"),
                    resultSet.getString("last_name")
            );
            return customer;
        }, id);

 

 

JdbcTemplate의 update 메서드를 이용하여 INSERT, UPDATE, DELETE 쿼리를 실행할 수 있습니다.


jdbcTemplate.update("insert into customers (first_name, last_name) values (?, ?)", customer.getFirstName(), customer.getLastName());

 

jdbcTemplate.update("delete from customers where id = ?", Long.valueOf(id));

 

JdbcTemplate을 사용하여 데이터베이스에 새로운 정보를 추가하고,
그 때 생성된 primary key (여기서는 id)를 가져오기 위해서 KeyHolder를 사용할 수 있습니다.

 

KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(connection -> {
    PreparedStatement ps = connection.prepareStatement(
            "insert into customers (first_name, last_name) values (?, ?)", 
            new String[]{"id"});
    ps.setString(1, customer.getFirstName());
    ps.setString(2, customer.getLastName());
    return ps;
}, keyHolder);

Long id = keyHolder.getKey().longValue();

 

728x90

'모각코 > 어쩌다보니 박준태가 조장이조' 카테고리의 다른 글

1.30.(화) 모각코  (0) 2024.02.08
6회차 어쩌다보니 박준태가 조장이조 - 2. 6.(화)  (0) 2024.02.06
5회차 어쩌다보니 박준태가 조장이조 - 1.30.(화)  (0) 2024.02.03
1.22.(월) 모각코  (0) 2024.01.30
1.17.(수) 모각코  (0) 2024.01.22
'모각코/어쩌다보니 박준태가 조장이조' 카테고리의 다른 글
  • 1.30.(화) 모각코
  • 6회차 어쩌다보니 박준태가 조장이조 - 2. 6.(화)
  • 5회차 어쩌다보니 박준태가 조장이조 - 1.30.(화)
  • 1.22.(월) 모각코
Bello's
Bello's
개발하는 벨로
  • Bello's
    벨로의 개발일지
    Bello's
  • 전체
    오늘
    어제
    • 분류 전체보기 (200)
      • 노예 일지 (7)
        • 스타트업 노예일지 (3)
      • CS 이론 (81)
        • 학과 수업 (4)
        • 알고리즘 (64)
        • 시스템 프로그래밍 (3)
        • 데이터 통신 (1)
        • 운영체제 (2)
        • 데이터베이스 (1)
      • project (3)
      • 나는 감자다. (4)
      • Spring (27)
      • 모각코 (45)
        • 절개와지조(모각코) (7)
        • 어쩌다보니 박준태가 조장이조 (11)
        • 어쩌다보니 박준태가 또 조장이조 (12)
      • LikeLion🦁 (20)
      • 캘리포니아 감자 (4)
      • OpenSource Contribute (1)
      • 우아한테크벨로 (8)
        • 프리코스 회고록 (6)
        • Level 1 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바
    그래프 순회
    타임리프
    나는 감자
    회고록
    어렵다
    백준
    모각코
    DFS
    뛰슈
    8기
    프리코스
    JPA
    감자
    절개와지조
    우테코
    오블완
    누적합
    Spring
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Bello's
2. 6.(화) 모각코
상단으로

티스토리툴바