JDBC 이해

개발하는 도비·2023년 9월 17일

spring-db

목록 보기
1/7
post-thumbnail

1. JDBC 등장 이유

  • 웹/앱에서 보통 DB에 직접 연결하지 않음. 애플리케이션 서버에 요청을 보낸 후 애플리케이션 서버에서 DB에 query를 날림.

  • 일반적인 사용법
    • 커넥션 연결: 주로 TCP/IP를 사용해서 커넥션
    • SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달.
    • 결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답. 애플리케이션 서버는 응답 결과를 활용.

1-1. 과거 문제점

  • 데이터베이스를 다른 종류의 데이터베이스로 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용코드도 함께 변경해야 함.
  • 개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달, 그리고 그 결과를 응답 받는 방법을 알아야 함.

1-2. JDBC 표준 인터페이스

  • 과거의 문제점으로 인해 등장.

  • 대표 기능

    • java.sql.Connection - 연결
    • java.sql.Statement - SQL을 담은 내용
    • java.sql.ResultSet - SQL 요청 응답
  • JDBC로 인해 해결된 점

    • 애플리케이션 로직이 JDBC 표준 인터페이스에만 의존한다. 따라서 데이터베이스를 다른 종류의 데이터베이스로 변경하고 싶으면 JDBC 구현 라이브러리만 변경.
    • 개발자는 JDBC 표준 인터페이스 사용법만 학습
  • JDBC 한계

    • 데이터베이스마다 SQL, 데이터타입 등의 일부 사용법 다름 -> 특히 페이징.

2. JDBC와 최신 데이터 접근 기술

2-1. SQL Mapper

  • 장점
    • SQL 응답 결과를 객체로 편리하게 변환.
    • JDBC의 반복 코드를 제거.
  • 단점
    • SQL을 직접 작성
  • 대표 기술
    • 스프링 JdbcTemplate
    • MyBatis

2-2. ORM 기술

  • ORM은 객체를 관계형 데이터베이스 테이블과 매핑해주는 기술
  • 장점
    • 반복적인 SQL을 직접 작성x
    • SQL을 동적으로 만들어 실행
  • 단점
    • 실무를 위한 학습이 오래걸림.
  • 대표 기술
    • JPA
    • 하이버네이트
    • 이클립스링크

3. 데이터베이스 연결

3-1. JDBC DriverManager 연결 이해

  • JDBC는 java.sql.Connection 표준 커넥션 인터페이스를 정의
  • H2 데이터베이스 드라이버는 JDBC Connection 인터페이스를 구현
  • org.h2.jdbc.JdbcConnection 구현체를 제공

3-2. DriverManager 커넥션 요청 흐름

4. 참조

  • 스프링 DB 1편 - 데이터 접근 핵심 원리
  • 링크
profile
도비의 양말을 찾아서

0개의 댓글