1. JDBC란?
JDBC(Java Databace Connectivity)는 자바를 이용한 데이터베이스 접속, SQL 문장 실행, 실행 결과로 얻어진 데이터의 핸들링 등을 제공하는 방법과 절차에 관한 규약을 의미한다. 즉, 자바 프로그램 내에서 SQL 문을 실행시키기 위한 자바 API라고 생각하면 된다. Java는 표준 인터페이스인 JDBC API를 제공한다.
2. JDBC 환경 설정
JDBC 프로그래밍을 위해서는 먼저 JDK가 설치되어 있어야 한다. JDK 설치는 이전에 정리해 놓은 것을 참고하자.
데이터베이스 벤더에서는 JDBC 인터페이스를 구현한 드라이버를(driver)를 제공한다. JDBC를 사용하기 위해서는 이러한 JDBC 드라이버를 설치해야 한다. 데이터베이스 벤더에서 제공하는 라이브러리(=driver)를 추가하기 위해서는 Maven 파일에 아래와 같은 <dependency> 태그를 추가해주면 된다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
위에서 version은 현재 컴퓨터에서 사용중인 mysql의 버전으로 입력해줘야 한다. 그렇지 않으면 아래와 같은 에러가 발생한다.
3. JDBC 사용 단계
MySQL을 사용하기 위해서는 기본적으로 cmd 창에서 사용할 때는 먼저 "mysql -u root -p Database"와 같은 명령을 사용하여 DB에 접속한다. 이렇게 DB에 접속하면 해당 cmd 즉 client는 DB에 연결되게 된다. 이후 DB의 데이터를 다루기 위해 select 등의 Query문을 작성하고 실행하는 과정을 반복한다. JDBC 역시 동일하다. JDBC 프로그래밍은 다음과 같은 방법으로 수행된다.
- Import
- 드라이버 로드
- Connection 객체 생성
- Statement 객체 생성 및 질의 수행
- SQL문의 결과물이 있다면 ResultSet 객체 생성
- 모든 객체 close
자바 코드에서 다른 패키지에 있는 클래스를 사용하려면 import를 수행해야 한다. java.sql 패키지 DriverManage, Connection, Statement 등의 인터페이스를 포함하므로 먼저 해당 패키지를 import해야 한다. 이후 3단계인 "Connection 객체 생성"가 바로 DB에 접속하는 부분이다. Connection 객체는 DB에 접속됐을 때 얻을 수 있는 객체다. 데이터베이스는 종류에 따라 자바에서 제공하는 인터페이스를 구현하고 있다. 즉, Connection은 데이터베이스 벤더에서 제공하는 인터페이스다. 따라서 벤더가 제공하는 라이브러리를 사용할 수 있어야하므로 2단계에서 먼저 "드라이브 로드"를 수행하는 것이다. 4단계 "Statement 객체 생성 및 질의 수행"는 select 문과 같은 Query문을 생성하여 수행하는 과정이다. 이후 5단계 "SQL문의 결과물이 있다면 ResultSet 객체 생성"에서 4단계에서 수행한 SQL문 결과물이 있다면 해당 결과를 저장하는 일을 수행한다. 그리고 마지막으로 모든 작업이 끝났다면 모든 객체를 닫아주면 된다.
JDBC 클래스가 생성되는 단계를 살펴보자. 먼저 드라이버를 로딩할 때는 DriverManager 객체가 갖고 있는 메서드를 사용하여 드라이버를 로딩한다. 따라서 DriverManager 객체를 이용하여 Connection 인스턴스를 얻어낸다. 그리고 Connection 인스턴스를 통해 Statement 객체를 얻고, Statement 객체를 통해 Resultset 객체를 얻어내게 된다. 즉, DriverManager-Connection-Statement-Resultset 순서로 생성된다. 이후 객체를 닫을 때는 반대 순서로 닫아야 한다.
References
'BackEnd > JDBC' 카테고리의 다른 글
[JDBC] MySQL Datetime 타입 저장 방법 (0) | 2023.01.31 |
---|---|
[JDBC] DTO/DAO/VO 간단한 정리 (0) | 2023.01.26 |
[JDBC] like문 사용법 (0) | 2023.01.18 |
JDBC 예제 코드 (select, insert, delete) (0) | 2022.12.26 |