⏰ 2024. 07. 04 목
✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.
DB Driver
통신
을 중개하는 역할을 한다.연결 초기화
요청 수신
: 애플리케이션은 데이터베이스 작업을 시작하기 위해 드라이버에 연결을 요청한다.연결 설정
: 드라이버는 데이터베이스 서버에 로그인하고 필요한 설정을 수행하여 연결을 완료한다. 이 과정에서 네트워크 정보, 인증 자격 증명 등을 사용하여 이루어진다.SQL 전송 및 실행
SQL 명령 변환
: 애플리케이션에서 발송된 SQL 명령을 받은 드라이버는 해당 명령을 데이터베이스가 이해할 수 있는 형태로 변환한다.명령 처리
: 변환된 명령은 데이터베이스 서버로 전송되어 실행된다. 데이터베이스는 쿼리를 처리하고 요구된 데이터를 검색하거나 데이터에 변화를 준다.결과 처리
결과 수신
: 데이터베이스에서 작업의 결과를 보내면, 드라이버는 이 결과를 받아 애플리케이션에서 해석할 수 있는 형태로 변환한다.결과 전달
최종적으로 드라이버는 결과를 애플리케이션에 전달한다.연결 종료
연결 해제
: 작업이 완료되면, 드라이버는 데이터베이스 서버와의 연결을 종료한다. 그리고 남은 자원을 정리하고 다음 세션을 위해 시스템을 초기화한다.JDBC Driver
JDBC Driver Manager
에 의해 애플리케이션이 실행되고 있는 런타임 시점에Connection(연결)
을 생성하여 쿼리를 요청할 수 있는 상태를 만들어주고Statement(상태)
를 생성하여 쿼리를 요청하게 해주고ResultSet(결과셋)
을 생성해 쿼리 결과를 받아올 수 있게 해줍니다.executeQuery()
나 executeUpdate()
를 실행하는 시점에 파라미터로 SQL문을 전달하는데, 이 때 전달되는 SQL 문은 완성된 형태로 한눈에 무슨 SQL 문인지 파악하기 쉽다.내부적으로 Statement
의 4단계(구문분석, 치환, 실행, 인출) 과정 중 첫 번째 구문 분석(parse)
과정의 결과를 캐싱하고, 나머지 3가지 단계만 거쳐서 SQL문이 실행될 수 있게 한다.
구문 분석(parse)의 결과를 캐싱
해서 과정을 생략할 수 있으므로 성능이 향상된다.
변수 문자열 쿼리
를 집어넣어 해킹하는 SQL Injection
도 방어할 수 있디.