728x90
JDBC란?
JDBC란 Java DataBase Connectivity 의 약어로 Java와 DB연결을 위한 표준 API이다.
- JDBC는 관계 데이터베이스에 접근하는 자바 API이다.
- 클라이언트가 데이터베이스에 접근하는 방법을 정의한 어플리케이션 프로그래밍 API이다.
- 자바언어와 DB를 연결을 위해 사용되는 통로같은 데이터 접근 기술이다.
- JDBC는 데이터베이스와 커넥션을 만들고, SQL 작업을 위한 인터페이스를 제공하고, 결과를 처리한다.
- JDBC API는 데이터베이스와 연결하기 위해 JDBC 드라이버를 사용한다.
- JDBC는 자바 프로그래밍 언어와 다양한 데이터베이스 SQL 또는 데이블 형태의 데이터 사이에 독립적인 연결을 지원하는 표준이다.
- 즉 다양한 형태의 관계형 데이터베이스에 접속하여 자바 프로그래밍 언어와 데이터베이스 사이에 데이터를 주고받을 수 있도록 지원하는 표준 자바 응용 프로그래밍 인터페이스이다.
- JDBC API는 자바 프로그래밍 언어로 작성된 인터페이스, 클래스, 및 예외 클래스들의 집합으로 구성되어 있으며, SQL을 이용해 자바 프로그래밍 언어로 데이터베이스 응용 프로그래밍을 작성할 수 있도록 지원한다.
- 또한 JDBC API는 관계형 데이터베이스 관리 시스템에 SQL문을 쉽게 보낼 수 있도록 지원한다.
- JDBC API의 가장 큰 장점은 자바 응용 프로그램이 거의 모든 데이터에 접근할 수 있도록 지원하는 것이며, 자바 가상머신이 설치된 모든 종료의 데이터베이스 플랫폼에서 실행될 수 있다는 것이다.
필요한 이유
- db 학습시 SQL이용해서 db에다 직접 값을 넣거나 조회하는 등의 일을 수행했음.
- 하지만 우리가 웹을 동작,수행시킬 때마다 매번 그럴 수는 없음.
- 그래서 프로그램이 이 일을 대신할 수 있게 만들어줘야 하는데 이때 사용하는 것이 JDBC이다.
- JAVA는 표준 인터페이스인 JDBC API를 제공한다. 그래서 사용하기 편하다. 인터페이스가 이미 정의되어 있기 때문에, 어떤 db벤더든 간에 다 똑같은 방법으로 사용하면 된다.
- DB벤더, 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버(driver)를 제공한다. 그래서 사용자들은 이런 드라이버를 이용하면 된다.
JDBC를 이용한 프로그래밍 방법
JDBC 클래스의 생성관계
![](https://blog.kakaocdn.net/dn/cbCg70/btrXnJnTCqU/Ip8PbRSwhGa8ziQHNWVL3k/img.png)
- 드라이버 로딩시 DriverManager라는 객체가 갖고 있는 메서드를 이용해서 드라이버를 로딩한다. 그래서 DriverManager 객체를 이용해서 Connection 인스턴스를 얻어내고, Connection 인스턴스를 통해서 Statement 객체를 얻어내고, Statement객체를 통해 ResultSet을 얻어낸다. 그래서 닫을때는 열때와 반대순서로 닫아주어야 한다.
JDBC API 역할
- - JDBC API는 표준 응용 프로그래밍의 인터페이스만을 제공해주는 것이고, 실질적인 인터페이스의 메소드 기능들에 대한 실제 구현은 DBMS 제조사들이 자신들의 데이터베이스에 맞게 구현하여 제공하며, 이를 JDBC 드라이버라고 한다. - 즉 JDBC 드라이버란 DBMS 회사들이 자신들의 데이터베이스 시스템에 접근할 수 있도록 표준 JDBC 인터페이스에 명시된 메소드들을 구현한 것이다.
- 따라서 JDBC API를 사용할 경우 하나의 자바 응용 프로그램만으로 JDBC 드라이버를 제공하는 어떤 종류의 관계형 DBMS에도 접근이 가능한 것이며, 사용자들은 특정 회사의 데이터베이스의 정확한 사용 방법을 몰라도 JDBC API만 배우면 데이터베이스 응용 프로그램을 구현할 수 있는 것이다.
- 조금더 자세하게 설명하면 자바에서 DB를 연결하고, 그 안에 있는 데이터를 가져오기 위해서 사용하는 API이다.
우선 전체적인 구조를 보면
크게 4가지로 나뉜다.
자바와 DB를 연결하기 위해서는 두 단계를 거쳐야한다.
JDBC API는 JDK에 포함되어있으며 DBMS에 상관없이 사용할 수 있는 API를 제공한다. JDK에 이미 포함이 되어있기 때문에 따로 다운로드하거나 설치할 필요는 없다.
대부분의 api는 java.sql 패키지나 javax.sql 패키지에 있는 api를 사용한다.
주요 클래스 및 인터페이스로
- DriverManger : JDBC 드라이버 로드
- Connectoin : DB와 연결하기 위한 인터페이스
- Statement / PreparedStatement / CallableStatement (SQL을 보내기 위한 통로)
- Statement : SQl을 보내기 위한 통로. 인자가 없음.
- PreparedStatement : Statement와 동일한데 차이점은 인자값으로 SQL을 받기 때문에 특정한 SQL에 대한 통로라고 생각하면 된다.
- CallableStatement : PL/SQL을 호출할 때 사용
- ResultSet : SQL문의 결과를 저장하는 객체
등이 있다.
JDBC Driver는 아래 4가지가 있다.
- JDBC-ODBC Bridge Driver
- Native API Driver (partially java driver)
- Network Protocol Driver (fully java driver)
- Thin Driver (fully java driver)
<< JDBC를 하기 위한 환경 설정 >>
728x90
'Spring' 카테고리의 다른 글
[Spring] Thymeleaf 와 jsp 비교 (0) | 2023.02.05 |
---|---|
[Servlet & JSP] Redirect vs forward 방식 비교 (0) | 2023.02.03 |
Spring과 SpringBoot 의 정의와 사용 이유 (0) | 2023.01.29 |
스프링이란? (1) | 2023.01.05 |
좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2023.01.04 |