728x90
반응형
JDBC란
자바에서 DB 프로그래밍을 하기 위해 사용되는 API
자바 프로그램이 데이터베이스와 연결되어 데이터를 주고받을 수 있게 해주는 프로그래밍 인터페이스입니다.
등장 이유
과거에는 DB마다 커넥션을 연결하는 방법, SQL 전달 방법, 결과 응답 방법이 상이하고
MySQL, Oracle 등 DB의 종류도 다양해서 종류에 따라 코드도 변경해야 합니다.
이를 위해 개발자는 연결 방법을 매번 배우고 코드의 적용했어야 합니다.
JDBC 역할
- JAVA 코드에서 DB 서버에 접속
- SQL 문을 구성하고 DB 서버에서 실행
- DB 서버에서 처리한 결과를 가져오기
- DB의 정보를 가져오기
JDBC 동작 흐름
JAVA 애플리케이션 → JDBC API → JDBC 드라이버 → 데이터베이스
JDBC는 JAVA 애플리케이션 내에서 JDBC API를 사용하여 데이터베이스에 접근하는 단순 구조입니다.
JDBC API를 사용하기 위해서는 JDBC 드라이버를 먼저 로딩 후 데이터베이스와 연결해야 합니다.
JDBC 기본 인터페이스
- java.sql.Connection : 연결
- java.sql.Statement : SQL을 담은 내용
- java.sql.ResultSet : SQL 요청 응답
JDBC 드라이버
- 데이터베이스와 통신을 담당하는 인터페이스
- Oracle 등과 같은 데이터베이스에 알맞은 JDBC 드라이버를 구현하여 제공
- JDBC 드라이버의 구현체를 이용해서 특정 벤더의 데이터베이스에 접근할 수 있음
JDBC API 사용 흐름
-
JDBC 드라이버 로딩 :사용하고자 하는 JDBC 드라이버를 로딩 / ※ DriverManager 클래스를 통해 로딩
- Connection 객체 생성 : JDBC 드라이버가 정상적으로 로딩되면 DriverManager를 통해 데이터베이스와 연결되는 세션인 Connection 객체를 생성
- Statement 객체 생성 : Statement 객체는 작성된 SQL 쿼리문을 실행하기 위한 객체로 정적 SQL 쿼리 문자열을 입력으로 가짐
- Query 실행 : 생성된 Statement 객체를 이용하여 입력한 SQL를 실행
- ResultSet 객체로부터 데이터 조회 : 실행된 SQL 쿼리문에 대한 결과 데이터 셋
- ResultSet, Statement, Connection 객체 Close : JDBC API를 통해 사용된 객체들은 생성된 객체들을 사용한 순서의 역순으로 Close
JDBC API
- 장점
- 데이터베이스로부터 데이터의 XML형식을 자동으로 생성
- 쿼리, 프러시저를 지원
- ODBC 드라이버가 설치된 데이터베이스는 접근 가능
- 단점
- 쿼리 실행 이전, 이후에 많은 코드 작성 필요( 커넥션, 스테이트먼트, 연결, 해제 등)
- 데이터베이스 로직에 있는 코드 관리 위해 예외 작성
- 여러 개의 데이터베이스로부터 코드 반복이라는 작업 필요
표준화의 한계
JDBC 등장으로 개발자들은 많이 편리했졌으나 일반적인 부분만 공통화되어 DBMS마다 특성들을 모두 표준화하기 한계가 있습니다.
DB 변경 시 JDBC 코드는 변경하지 않아도 SQL의 쿼리문은 해당 DB에 호환되도록 수정이 필요합니다.
728x90
반응형
'백수 > java' 카테고리의 다른 글
10. Servlet과 JSP를 비교해서 설명하세요 (0) | 2023.07.25 |
---|---|
직렬화 (0) | 2023.07.18 |
버블 정렬 (0) | 2023.07.13 |
싱글톤 패턴 (0) | 2023.07.13 |
1. OOP가 뭐죠? (0) | 2023.07.12 |