일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 커밋 되돌리기
- 리눅스
- allocationSize
- 티스토리챌린지
- API
- Git
- @SubscribeMapping
- m:n
- application layer
- 오블완
- JDBC
- 쉘 스크립트
- DTO
- 편향된 지수
- 런타임 상수
- 기본키 전략
- 알고리즘
- 쿠키
- intelij spring config
- compgen
- JPA
- 파이썬
- 프로그래머스
- @Autowired
- spring
- 은행원알고리즘
- 컴파일 타임 상수
- 백준
- BindingResult
- 무한정 대기
- Today
- Total
둘셋 개발!
[Spring DB 1편] Jdbc 이해 본문
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
(출처: 인프런-스프링DB 1편 김영한 강사님 강의자료)
첫번째 Connection은 db와의 커넥션 연결이고,
두번째 Statement는 db에 sql을 담은 내용을 전달하는것이고
세번째 ResultSet은 db에게 sql 요청한 것을 응답 받는 것 입니다.
이렇게 인터페이스가 있으면 구현도 있겠죠??
그것이 바로 JDBC 드라이버!!
JDBC 드라이버
JDBC 드라이버는 JDBC인터페이스를 db에 맞도록 구현한 라이브러리 입니다.
만약 db가 mysql이라면 mysql jdbc 드라이버, db가 oracle이라면 oracle jdbc 드라이버가 있다는 얘기!
이것을 그림으로 표현하면 다음과 같습니다.
(출처: 인프런-스프링DB 1편 김영한 강사님 강의자료)
그렇다면 개발자는 JDBC 표준 인터페이스에만 의존하면 된다!
만약 db를 교체해야 한다면 JDBC 드라이버만 바꿔끼면 끝!!👍
JDBC의 한계
실무에서 많이 사용하는 페이징 SQL은 각각 데이터베이스마다 사용법이 달라서
JDBC 코드는 변경하지 않아도 되지만 SQL은 해당 데이터베이스에 맞도록 변경해야함
(만약 JPA를 사용하면 ㄱㅊ)
(참고 : 인프런 김영한 강사님 - 스프링 DB1편 - 데이터 접근 핵심 원리 )
https://www.inflearn.com/course/스프링-db-1/dashboard
'SPRING > Jdbc' 카테고리의 다른 글
[Spring DB 1편] Jdbc와 최신기술 (SQL Mapper, ORM 기술) (0) | 2022.09.07 |
---|