[Section 3] JDBC 기반 데이터 액세스 계층(1)

현이·2023년 4월 18일
0

백엔드 부트캠프 TIL

목록 보기
27/37
post-thumbnail

사진은 마레 지구 가려고 보면 늘 마주하는 어느 부자 댁.. 호텔인듯?
JDBC와 JPA가 무엇인지 어떤 차이가 있는지.. 그리고 기본 설정 방법을 배웠다. 괜찮긴 했는데 혼자 할 자신은 없어서 여러번 해봐야 될 것 같다


JDBC

  • Java Database Connectivity
  • 자바 기반 애플리케이션 코드 레벨에서 사용하는 데이터 ↔️ DB 저장/업데이트 도와주는 자바 제공 표준 사양

JDBC 동작 흐름

  • Java 애플리케이션 ▶️ JDBC API ▶️ JDBC 드라이버 ▶️ 데이터베이스

JDBC API 사용 흐름

  • JDBC 드라이버 로딩
    ▶️ Connection 객체 생성
    ▶️ Statement 객체 생성
    ▶️ Query 실행
    ▶️ ResultSet로부터 객체 조회
    ▶️ ResultSet 객체 Close
    ▶️ Statement 객체 Close
    ▶️ Connection 객체 Close

Connection Pool

  • Connection 객체 생성: 비용부담 큼
    => 그때그때 생성하지 않고 미리 만들어둔거 사용

  • Connection Pool: Connection 객체 보관, 필요시 제공하는 관리자

+) Spring Boot 2.0부터 HikariCP를 기본 DBCP로 채택




Spring Data JDBC

Data Access 기술 유형

SQL중심에서 객체 중심으로 이전하는 추세

  • SQL 중심 기술
    SQL 쿼리문을 애플리케이션 내부에 직접 작성
    쿼리문으로 특정 테이블에서 데이터 조회 후 Java 객체로 변환
    e.g. mybatis

  • 객체(Object) 중심 기술 (ORM)
    내부에서 객체를 SQL쿼리문으로 자동 변환 후 DB 테이블에 접근
    e.g. JPA(Java Persistence API)

Spring Data JDBC

  • JPA처럼 ORM기술을 사용하지만 기술적 복잡도를 낮춘 기술

0개의 댓글