둘셋 개발!

[Spring DB 1편] Jdbc 이해 본문

SPRING/Jdbc

[Spring DB 1편] Jdbc 이해

23 2022. 9. 7. 11:47

Jdbc가 나온 배경

서버는 db를 통해 데이터를 저장, 조회, 삭제하는 작업을 합니다.

이때 db와 다음과 같은 과정을 거칩니다!!

 

1. 커넥션 연결

2. SQL 전달

3. 결과응답

 

여기서 문제는 db종류마다 이 과정이 각각 다르다는 것입니다.

만약 db를 교체해야한다면 db와 관련된 코드를 모두 고쳐야 하며, 시간이 많이 소요됩니다.

이러한 문제를 해결하기 위해 JDBC라는 자바 표준이 등장합니다!!!

 


JDBC란?

Java Databses Connectivity의 약자로 자바에서 데이터베이스에 접속할 수 있도록 하는 자바API 입니다.

대표적으로 다음과 같은 표준 인터페이스를 제공합니다.

 

java.sql.Connection

java.sql.Statement

java.sql.ResultSet

 

jdbc 표준 인터페이스

(출처: 인프런-스프링DB 1편 김영한 강사님 강의자료)

 

첫번째 Connection은 db와의 커넥션 연결이고, 

두번째 Statement는 db에 sql을 담은 내용을 전달하는것이고

세번째 ResultSet은 db에게 sql 요청한 것을 응답 받는 것 입니다.

 

이렇게 인터페이스가 있으면 구현도 있겠죠??

그것이 바로 JDBC 드라이버!!

 


JDBC 드라이버

JDBC 드라이버는 JDBC인터페이스를 db에 맞도록 구현한 라이브러리 입니다.

만약 db가 mysql이라면 mysql jdbc 드라이버, db가 oracle이라면 oracle jdbc 드라이버가 있다는 얘기!

이것을 그림으로 표현하면 다음과 같습니다.

 

JDBC 드라이버

(출처: 인프런-스프링DB 1편 김영한 강사님 강의자료)

 

그렇다면 개발자는 JDBC 표준 인터페이스에만 의존하면 된다!

만약 db를 교체해야 한다면 JDBC 드라이버만 바꿔끼면 끝!!👍

 


JDBC의 한계

실무에서 많이 사용하는 페이징 SQL은 각각 데이터베이스마다 사용법이 달라서

JDBC 코드는 변경하지 않아도 되지만 SQL은 해당 데이터베이스에 맞도록 변경해야함

(만약 JPA를 사용하면 ㄱㅊ)

 


(참고 : 인프런 김영한 강사님 - 스프링 DB1편 - 데이터 접근 핵심 원리 )

https://www.inflearn.com/course/스프링-db-1/dashboard

 

스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의

백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의

www.inflearn.com

 

'SPRING > Jdbc' 카테고리의 다른 글

[Spring DB 1편] Jdbc와 최신기술 (SQL Mapper, ORM 기술)  (0) 2022.09.07