[SPRING] JDBC, JPA, 쿼리DSL

kang·2024년 9월 27일

SPRING

목록 보기
22/22

빠른 정리

  • JDBC: 직접 SQL을 작성해 데이터베이스와 통신함
    (반복코드 많음, 직접 sql을 관리해야함. sql이 복잡하면 가독성 떨어짐)
  • JPA: 객체와 테이블을 매핑해주며, SQL 쿼리를 직접 작성하지 않고도 데이터를 쉽게 조회할 수 있음.
  • 쿼리 DSL: JPA에서 더 복잡한 쿼리를 안전하고 직관적으로 작성할 수 있게 해주는 도구.

공통점: 모두 데이터베이스와 상호작용함

JDBC (Java Database Connectivity):

  • 자바에서 데이터베이스와 직접 연결해 SQL 쿼리를 실행하는 방법.
  • SQL을 직접 작성하고, 결과를 ResultSet으로 받아 처리.
  • 코드가 장황하고 반복적일 수 있음, 유지보수 어려움.

    예시: PreparedStatement를 사용해 SQL 쿼리 실행.

JPA (Java Persistence API):

  • 객체와 데이터베이스 테이블을 매핑하여 SQL을 작성하지 않고 데이터를 관리하는 방식.
  • 간단한 쿼리는 메서드 네이밍(findByHeightGreaterThan)만으로 처리 가능.
  • 내부적으로 JDBC를 사용하며, 데이터베이스 작업을 더 쉽게 관리.

    예시: @Entity와 JpaRepository를 사용해 객체 중심의 데이터 관리.

QueryDSL:

  • JPA에서 동적 쿼리나 복잡한 쿼리를 타입 안전하고 직관적으로 작성할 수 있게 도와주는 도구.
  • SQL 쿼리 대신 메서드 체이닝 방식으로 복잡한 조건을 깔끔하게 표현.

    예시: queryFactory.selectFrom(student).where(student.height.gt(height)).

profile
뉴비 개발 공부중

0개의 댓글