스프링 -4

김정현·2024년 7월 9일
0

Spring

목록 보기
4/14
post-thumbnail

JdbcTemplate

1. 설치 및 설정

1) spring-jdbc

2) tomcat-jdbc

  • 커넥션 풀
    - 미리 연결 객체를 여러개 생성해서 필요할때마다 빌려주고, 회수하는 방식
    - 반응성, 성능 향상의 효과

-HikariCp

+spring-context
+lombok
+spting-test
+ojdbc11

2. DataSource 설정

-javax.sql.DataSource
-연결 유효성 체크 관련 메서드 - Tomcat JDBC

3. JdbcTemplate을 이용한 쿼리실행

1) query()

: SELECT 문
-List query(String sql, RowMapper rowMapper)
-List query(String sql, Object[] args, RowMapper rowMapper)
-List query(String sql, RowMapper rowMapper, Object... args)

2) queryForObject()

: 단일 데이터 조회
-조회된 데이터가 반드시 1개여야 함, 그렇지 않으면 예외가 발생

  @Test
    void test3() {
        String email = "user05@test.org";
        try {
            Member member = jdbcTemplate.queryForObject("SELECT * FROM MEMBER WHERE EMAIL = ?", this::mapper, email);
            System.out.println(member);
        } catch (Exception e) {
            System.out.println("없음");
        }
    }

3) update()

: 데이터 변경을 가하는 SQL - INSERT, DELETE, UPDATE : 반환값 - 반영된 레코드 갯수
-int update(String sql)
-int update(String sql, Object... args
-PreparedStatement 방식으로 쿼리 작성
값 바인딩?, ?

로거
slf4j-api
logback classic

4. PreparedStatementCreator를 이용한 쿼리 실행

-> Connection 객체 매개변수로 정의되어 있는 메서드를 통해서 사용 가능
-> 증감 번호 형태의 PK를 조회

5. INSERT 쿼리 실행 시 KeyHolder를 이용해서 자동 생성 키값 구하기

6. 스프링의 익셉션 변환 처리

- 각 연동 기술에 따라 발생하는 익셉션을 스프링이 제공하는 익셉션으로 변환함으로써 다음과 같이 구현 기술에 상관없이 동일한 코드로 익셉션을 처리할 수 있게 된다.
SQLExcpetion, HibernateException, PersistenceException ->  DataAccessException
(RuntimeException)

7. 트랜잭션 처리

: 수동

  • @Transactional : 클래스명 위, 메서드명 위

0개의 댓글